我正在尝试添加运行时权限android(6.0.1)API 23,如果我使用SDK版本(最小和目标版本均为23)它很好,如下所示,
<uses-sdk
android:minSdkVersion="23"
android:targetSdkVersion="23" />
如果我改变android:minSdkVersion(小于23)
例如:
我在下面收到错误:
调用需要API级别23(当前最小值为14):android.app.Activity#requestPermissions,checkSelfPermission
对于以下两种方法:
1)requestPermissions(permissionsList.toArray(new String[permissionsList.size()]),REQUEST_CODE_ASK_MULTIPLE_PERMISSIONS)
2)checkSelfPermission(permission)
我尝试了活动公司。checkSelfPermission()
和ContextCompat。checkSelfPermission()
两者都不工作。
我想不明白的是..
试试这种方法
if (Build.VERSION.SDK_INT >= 23) {
if (ActivityCompat.checkSelfPermission(MainActivity.this, Manifest.permission.READ_PHONE_STATE)
!= PackageManager.PERMISSION_GRANTED) {
requestContactsPermissions1();
} else {
// your code
}
}
编辑:
在较低级别(您的应用程序)build.gradle
中添加依赖项块:
compile 'com.android.support:appcompat-v7:23.1.1'
或者仅在需要设计支持库时添加以下内容
compile 'com.android.support:design:23.1.1'
使用上述之一
检查权限:
上下文兼容性检查自身权限(上下文上下文、字符串权限)
请求权限:
活动Compat.request权限(活动活动、字符串[]权限、整型请求代码)
或者在support-v4 片段
中
requestPermissions(字符串[]权限,int requestCode)
要么检查目标
@TargetApi(Build.VERSION_CODES.M)
例如,如果您正在检查存储权限,则可以参考此函数,
@TargetApi(Build.VERSION_CODES.M)
public boolean CheckStoragePermission() {
int permissionCheckRead = ContextCompat.checkSelfPermission(context,
Manifest.permission.READ_EXTERNAL_STORAGE);
if (permissionCheckRead != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale((Activity) context,
Manifest.permission.READ_EXTERNAL_STORAGE)) {
// Show an expanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
ActivityCompat.requestPermissions((Activity) context,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
Define.PERMISSION_STORAGE);
} else {
// No explanation needed, we can request the permission.
ActivityCompat.requestPermissions((Activity) context,
new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
Define.PERMISSION_STORAGE);
// MY_PERMISSIONS_REQUEST_READ_CONTACTS is an
// app-defined int constant. The callback method gets the
// result of the request.
}
return false;
} else
return true;
}
我的代码中有这样一行: 显示以下错误: 调用需要API级别16(当前最小值为14) 如果API级别较高,它是否限制了我的应用程序可以使用的设备数量?
我正在实现谷歌的方向API。我的应用程序支持和。 是否有解决方案,或者我应该检查用户的版本,并允许此功能(如果其版本受支持)? 错误: 调用需要API级别26(当前最小值为23):java。时间瞬间#现在少了。。。(Ctrl-F1)检查信息:此检查扫描应用程序中的所有Android API调用,并警告此应用程序针对的所有版本上不可用的任何调用(根据清单中的最小SDK属性)。如果你真的想使用这个AP
在SDK更新(23)之后,我得到了这个lint错误,我没有对我的代码做任何更改,它在api级别为9的设备上运行良好。另外,我在代码中根本不调用android.app.活动#onCreateView。如果我单击自动修复,它会将@SuppressLint(NewApi)放入类,这样错误就会消失,我想确定这是否是要走的路。
问题内容: 我是JSON的新手。我按照本教程创建了示例应用程序。当我尝试将代码复制到我的日食时,它显示错误。 请指教。谢谢 问题答案: 转到android AndroidManifest.xml 在您的文件中是8 将SDK版本更改为9,如下所示
问题内容: 我是android的新手,并且正在开发android应用程序。但是我的包装行在MainActivity.java类中给出了此错误。谁能告诉我这的原因吗?这是我的课程,打包行给出了此错误。 问题答案: 首先,介绍一些细节。有不同 级别 的Android API,每个级别可能会引入新功能,如此处所示。 创建Android应用程序时,您指定运行应用程序的最低级别。这是在做与节:看到这里了解详
我刚刚开始做Android开发,或多或少遵循http://developer.android.com/training/basics/firstapp/starting-activity.html教程,有一件事一直困扰着我:我有两个类,都是使用“Android活动”创建向导创建的: 和 Eclipse不断给我以下错误: 调用需要API级别11(当前最小值为8):android。应用程序。活动#ge