在添加权限请求模块后,甚至在集成Hockey sdk之后无法写入外部存储

时间:2017-12-21 11:37:23

标签: android android-permissions

我正在尝试使用权限模型添加与外部存储相关的权限,但无法获取外部存储权限的弹出窗口。我添加了更多权限。这个只是不起作用。

4 个答案:

答案 0 :(得分:3)

曲棍球库最近开始不使用外部存储的许可。因此,他们将maxSdkVersion的检查添加到18.您可以在Merged Manifest文件中看到这一点。  您需要做的就是添加此权限以访问外部存储。

 <uses-permission
    android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    tools:remove="android:maxSdkVersion" />

答案 1 :(得分:0)

您可以使用以下代码

if (Build.VERSION.SDK_INT >= 23) {
            if (context.checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                    || context.checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED ||
                    context.checkSelfPermission(Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
                    || context.checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
                    || context.checkSelfPermission(Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {

                requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION,
                        Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.READ_EXTERNAL_STORAGE,
                        Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA}, REQUEST_CODE_ASK_PERMISSIONS);
                return;
            }
        }

答案 2 :(得分:0)

在我的情况下帮助移动CrashManager.register(this);代码执行后授予自己的许可。它帮助了我。

答案 3 :(得分:0)

根据Hockeyapp的文档:“如果您使用的是HockeySDK-Android 5.0.0和更高版本,则SDK会将WRITE_EXTERNAL_STORAGE权限限制为api级别为18或更低的设备。如果您的应用需要android.permission.WRITE_EXTERNAL_STORAGE才能运行,则可以通过附加'tools:node =“ replace”'来覆盖Hockey的隐式合并清单权限设置。这样,您的应用清单即可覆盖Hockeyapp的权限。参考:https://support.hockeyapp.net/kb/client-integration-android/hockeyapp-for-android-sdk#permissions-advanced

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
    tools:node="replace"/>