[英]Permissions are granted by default
我不确定我是否完全理解这一点。 因此,对于<= 21 API版本,我们只能使用AndroidManifest.xml
来请求权限,但是Lollipop和更高版本的API我们具有“运行时请求权限”功能。 所以我用这个simpe代码:
if (Build.VERSION.SDK_INT >= 23) {
mPermissionsToBeAsked.clear();
for (String permission : AudioRecordingThread.PERMISSIONS_NEEDED) {
if (checkSelfPermission(permission) != PackageManager.PERMISSION_GRANTED) {
mPermissionsToBeAsked.add(permission);
}
} ....
然后,如果该列表不为空,则请求它们:
if (mPermissionsToBeAsked.size() > 0) {
requestPermissions(mPermissionsToBeAsked.toArray(new String[0]), AUDIO_PERMISSIONS_REQUEST_CODE);
}
但是,由于某种原因,在设备上(例如,带有Android 6.0.1的Samsung Galaxy S7), 默认情况下,在安装app时 , 所有权限均被取消 。 所以我想知道为什么,但是,当我在“应用程序管理器”中转到我的应用程序并手动删除“麦克风checkSelfPermission(permission)
,在应用程序中checkSelfPermission(permission)
仍返回GRANTED ,这是一个更大的问题。 所以问题是:
mPersmissionToBeAsked
添加任何mPersmissionToBeAsked
? checkSelfPermission(android.permission.RECORD_AUDIO)
? Just Cross在您的应用gradle文件中验证targetdk版本是否大于22。
defaultConfig {
// -----
targetSdkVersion 23
//----
}
如果小于23,则会自动为您的应用授予权限。
首先是处理权限授予的Android M及更高版本。 那意味着你应该有
targetSdkVersion 23
或以上。 否则,系统将认为开发人员未针对该版本,这意味着开发人员不会检查权限。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.