Android不需要权限-棉花糖6.0.1 Unity
我正在构建一个纸板应用程序,并在Nexus 6P上进行测试。 我的问题是,当我安装应用程序时,它不要求任何权限。 在我的舱单中,我有:Android不需要权限-棉花糖6.0.1 Unity,android,unity3d,android-6.0-marshmallow,android-permissions,Android,Unity3d,Android 6.0 Marshmallow,Android Permissions,我正在构建一个纸板应用程序,并在Nexus 6P上进行测试。 我的问题是,当我安装应用程序时,它不要求任何权限。 在我的舱单中,我有: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 然后,如果我想在我的应用程序
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
然后,如果我想在我的应用程序中从互联网下载一些文件,它就不起作用了。它甚至没有创建com。文件夹
我必须手动转到应用程序信息并检查存储权限
这很奇怪,因为当为GearVR构建应用程序并在Note4上进行测试时,它需要获得许可(在Note4中,我使用sd卡,在Nexus 6P内部)
为什么会这样
谢谢。从Android 6.0(API级别23)开始,用户在应用程序运行时向应用程序授予权限,而不是在安装应用程序时。这就是您没有请求对话框的原因
若您需要请求权限,则需要显示请求的基本原理并处理用户迭代结果
发件人:
请求许可:
处理用户选择的选项
在:
从Android 6.0(棉花糖)开始,应用程序不再像以前那样获得所有安装权限。您现在必须在运行时请求权限(用户可以拒绝),并且必须能够在授予权限后随时处理被撤销的权限
如果您现在想使用旧的行为,我相信您应该能够将目标API级别设置为22
请阅读此处的更多信息:对于Android 6+而言,您需要在运行时请求权限,而不是在启动时请求权限。如果您正在考虑使用Google Play的应用程序
简而言之,您需要在巡更清单中指定权限,并在应用程序标记中包括以下内容
<meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" />
然后,在运行时通过Android请求权限
在上有一个很好的插件,为了快速修复,您可以针对android 5(api级别22而不是23),权限将继续使用旧的行为
- 请注意,如果您发布了一个针对android 6(23级)api的应用程序,则不能在更新中否决该目标api级别
我如何在Unity上使用它?我安装了支持库,但它说我必须编辑我没有的build.gradle文件。@mithrandirbuild.gradle
-它是一个包含依赖项的文件。所以你需要编辑与Unity development相关的同一个文件。该文件的名称是什么?@mithrandir我不知道。我不团结工作。接受一个答案怎么样?别告诉我他们帮不上忙……我在这里回答得很好
@Override
public void onRequestPermissionsResult(int requestCode,
String permissions[], int[] grantResults) {
switch (requestCode) {
case MY_PERMISSIONS_REQUEST_READ_CONTACTS: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// permission was granted, yay! Do the
// contacts-related task you need to do.
} else {
// permission denied, boo! Disable the
// functionality that depends on this permission.
}
return;
}
// other 'case' lines to check for other
// permissions this app might request
}
}
<meta-data android:name="unityplayer.SkipPermissionsDialog" android:value="true" />