繁体   English   中英

即使在授予权限后,Android 文件写入权限被拒绝错误

[英]Android File Write Permission Denied Error even after granting the permission

我在我的应用程序(MQTT Broker)中使用 Eclipse Moquette 来连接 IoT 设备。 我已经在清单中声明了读/写存储的所有权限,这里是我的清单文件中声明的权限。

    <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" />

所有权限都是在运行时提示和授予的。 成功地。 App UI 是基于 React-native 构建的,而 MQTT Broker 作为服务从 java 模块启动。

尽管如此,当我启动服务器时,我还是收到了这个错误。

日志错误

MQTT 服务器尝试启动服务时的 logcat 屏幕截图。 在运行时授予所有权限。

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

我知道这个问题已经发布了很长时间。 但是,我在这里没有看到解决方案,然后我决定合作,因为其他开发人员可能也有同样的问题。

我有同样的问题。 我在清单中添加代码解决了这个错误: android:requestLegacyExternalStorage="true"

此问题似乎出现在最新版本的 Android 中。 其实这不是问题,我们应该只实现权限需求。 我希望对你有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM