Android requestPermissions()方法在活动中显示错误警告
我在片段中使用了Android requestPermissions()方法在活动中显示错误警告,android,android-fragments,android-activity,Android,Android Fragments,Android Activity,我在片段中使用了requestPermissions()方法,其工作正常,没有显示任何错误或警告,但当我在活动中出于相同目的使用相同的代码时,其工作正常,但显示错误警告。下面是我在片段和活动中使用的代码 requestPermissions(new String[]{WRITE_EXTERNAL_STORAGE, CAMERA}, PERMISSION_REQUEST_CODE); 它是这样显示的 代码正在正确运行,但它仅在活动中显示,而不是在片段中显示,为什么以及如何修复此问题?问题:是M
requestPermissions()
方法,其工作正常,没有显示任何错误或警告,但当我在活动中出于相同目的使用相同的代码时,其工作正常,但显示错误警告。下面是我在片段和活动中使用的代码
requestPermissions(new String[]{WRITE_EXTERNAL_STORAGE, CAMERA}, PERMISSION_REQUEST_CODE);
它是这样显示的
代码正在正确运行,但它仅在活动中显示,而不是在片段中显示,为什么以及如何修复此问题?问题:是MarshMallow&;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp。您当前的min API是21(棒棒糖),它没有运行时权限
解决方案:您需要检查当前API是否高于棉花糖或使用
或
在您的
AndroidManifest.xml
中,您指定了android:minSdkVersion=“21”
,但此API仅在SDK版本23及更高版本上可用
您必须先检查android版本,否则您的应用程序将在android版本5.0(SDK 21)和5.1(SDK 22)上崩溃
有关检查和支持不同android版本的信息,请参阅您的最低api级别为21,但requestPermission方法从版本级别23开始工作 因此,要使用requestPermission()方法,必须处理版本代码-
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
requestPermission(............................)
}
您的最低api级别版本是21,但requestPermission方法从版本级别23开始工作。在活动中,您可以使用ActivityCompat.RequestPermissions显示此部分中的错误“(新字符串[]{WRITE_EXTERNAL_STORAGE,CAMERA},PERMISSION_REQUEST_CODE)”显示此部分中的错误”(新字符串[]{WRITE_EXTERNAL_STORAGE,CAMERA}),权限\请求\代码)“当我使用ActivityCompat时。我很困惑,因为它在片段中工作时没有在您的权限前面附加errorAppend
Manifest.permission
,或者静态导入这些包。我已经更新了我的答案;请检查。您可能正在使用FragmentCompat
(支持库/androidx),该库可能内部有这些检查。支持库与您的应用程序捆绑在一起,因此它随时可用。
ActivityCompat.requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.CAMERA}, PERMISSION_REQUEST_CODE);
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
{
requestPermission(............................)
}