【问题标题】:Android Read and Write Without Requesting Permission - Theta无需请求权限的 Android 读写 - Theta
【发布时间】:2019-09-03 10:28:56
【问题描述】:

我的插件需要读写权限,我尝试了很多东西。

在清单中

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

但根据其他帖子,v23 之后无法工作,所以我尝试使用requestPermission,但我的应用程序崩溃并且在实际用例中我没有任何界面。

我正在使用RICOH THETA Plug-in SDK

我正在尝试使用 BitmapFactory 并收到此错误

E/BitmapFactory: Unable to decode stream: java.io.FileNotFoundException: /storage/emulated/0/DCIM/100RICOH/R0010156.JPG (Permission denied)

如果有人知道怎么做。 谢谢。

【问题讨论】:

  • 您也可以发布异常日志吗?
  • E/BitmapFactory:无法解码流:java.io.FileNotFoundException:/storage/emulated/0/DCIM/100RICOH/R0010156.JPG(权限被拒绝)
  • 谢谢,您能否也发布一下您是如何请求权限以及如何使用 BitmapFactory 的?
  • 在 MainActivity 中创建

标签: android theta360


【解决方案1】:

别担心。 THETA 插件商店在安装时自动授予所有权限。实际用例中用户无需手动授予权限。您只需在开发时手动授予权限。

official document 描述了这一点

权限声明

从 RICOH THETA 商店安装时,根据清单文件中设置的保护级别,将自动授予权限。在开发过程中,使用显示屏幕的应用程序,例如 Vysor,并从应用程序设置或插件对话窗口授予权限。

【讨论】:

    【解决方案2】:

    您必须在 android 6 及更高版本使用 dexter 库手动授予权限 链接https://github.com/Karumi/Dexter

    【讨论】:

    • 我不建议添加外部库,仅用于处理权限。您将依赖图书馆,而不是学习正确的方法。
    • 我试过但是应用程序崩溃了,我认为这个库使用弹出请求请求要求用户选择权限,如果是这样它不是我需要的库。
    【解决方案3】:

    首先你应该检查android版本

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED &&
                    ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED {
    
               // do work
    
            } else {
    
                String[] permissions = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
                if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                    requestPermissions(permissions, 100);
                }
            }
        } else {
    
                          // do work
        }
    

    【讨论】:

    • 我试过了,它达到了 String[] 权限 = .... 的级别,当它运行时 requestPermissions() 应用程序崩溃
    • 把 logcat 的截图发给我(蓝线)
    • 不可能 :))) 当应用程序崩溃时,错误在 logcat 中以蓝色显示
    • 你的蓝线是Debug mod?您可以尝试 dl SDK 并将您的代码放入并在任何 android 智能手机中运行,通常具有相同的行为
    猜你喜欢
    • 1970-01-01
    • 2023-02-18
    • 1970-01-01
    • 2017-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多