I am using Eclipse Moquette in my application (MQTT Broker) to connect with IoT devices. I already declared all the permission in the manifest for Reading/Write storage here is the permissions declared in my manifest file.
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
All the permissions are prompt and granted during Runtime. Successfully. App UI is built on React-native while MQTT Broker starts as a service from java module.
Still, I am getting this error when I start the server.
Screenshot of logcat when MQTT server attempt to start the service. All permission are granted during runtime.
2020-11-04 14:58:37.515 21844-21952/com.botapp E/Moquette: null
java.io.IOException: Permission denied
at java.io.UnixFileSystem.createFileExclusively0(Native Method)
at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:317)
at java.io.File.createNewFile(File.java:1008)
at org.eclipse.moquette.spi.persistence.MapDBPersistentStore.initStore(MapDBPersistentStore.java:69)
at org.eclipse.moquette.spi.impl.SimpleMessaging.processInit(SimpleMessaging.java:166)
at org.eclipse.moquette.spi.impl.SimpleMessaging.init(SimpleMessaging.java:95)
at org.eclipse.moquette.server.Server.startServer(Server.java:90)
at org.eclipse.moquette.server.Server.startServer(Server.java:76)
at com.botapp.mqtt.StartServer.serverStart(StartServer.java:31)
at com.botapp.mqtt.StartServer.run(StartServer.java:24)
at java.lang.Thread.run(Thread.java:919)
2020-11-04 14:58:37.515 21844-21952/com.botapp W/System.err: org.eclipse.moquette.proto.MQTTException: Can't create temp file for subscriptions storage [/storage/emulated/0/moquette_store.mapdb]
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: at org.eclipse.moquette.spi.persistence.MapDBPersistentStore.initStore(MapDBPersistentStore.java:72)
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: at org.eclipse.moquette.spi.impl.SimpleMessaging.processInit(SimpleMessaging.java:166)
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: at org.eclipse.moquette.spi.impl.SimpleMessaging.init(SimpleMessaging.java:95)
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: at org.eclipse.moquette.server.Server.startServer(Server.java:90)
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: at org.eclipse.moquette.server.Server.startServer(Server.java:76)
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: at com.botapp.mqtt.StartServer.serverStart(StartServer.java:31)
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: at com.botapp.mqtt.StartServer.run(StartServer.java:24)
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: at java.lang.Thread.run(Thread.java:919)
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: Caused by: java.io.IOException: Permission denied
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: at java.io.UnixFileSystem.createFileExclusively0(Native Method)
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: at java.io.UnixFileSystem.createFileExclusively(UnixFileSystem.java:317)
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: at java.io.File.createNewFile(File.java:1008)
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: at org.eclipse.moquette.spi.persistence.MapDBPersistentStore.initStore(MapDBPersistentStore.java:69)
2020-11-04 14:58:37.516 21844-21952/com.botapp W/System.err: ... 7 more