在Play商店更新应用程序(sdk 23)时出错
我在Play商店提交了我应用程序的更新版本(sdk 23),并且在必须在Beta测试器中发布该部分时出现此权限错误。在Play商店更新应用程序(sdk 23)时出错
我已经做了requestPermission
变化的SDK 23:
if (Utils.isMarshmallow()) {
if (ContextCompat.checkSelfPermission(activity, android.Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED &&
ContextCompat.checkSelfPermission(activity, android.Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, new String[] {android.Manifest.permission.ACCESS_COARSE_LOCATION},
Utils.MY_PERMISSION_ACCESS_COARSE_LOCATION);
}
}
但要考虑与Android SDK的设备< 23我的清单看起来是这样的:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> `
我的build.gradle是:
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "br.com.app.vertz"
minSdkVersion 14
targetSdkVersion 23
versionCode 36
versionName "2.8"
}
...
仍然收到错误消息:
无法使用旧式权限(SDK 22及更低版本)将先前使用M权限(SDK 23及更高版本)的设备降级至APK。这发生在更改版本29(SDK 19)的版本32(23 SDK)中。
你要问运行许可WRITE_EXTERNAL_STORAGE也
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
//声明权限,并请求代码
private static final String[] REQUEST_PERMISSIONS = new String[]{
Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION
};
private static final int REQUEST_PERMISSION_CODE = 007;
//检查是否需要权限
if (!checkPermission()) {
requestPermission();
} else {
//perform your task
}
private boolean checkPermission() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
return true;
}
for (String permission : REQUEST_PERMISSIONS) {
if (ActivityCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
return true;
}
private void requestPermission() {
ActivityCompat.requestPermissions(this, REQUEST_PERMISSIONS, REQUEST_PERMISSION_CODE);
}
@Override
public void onRequestPermissionsResult (int requestCode, @NonNull String[] permissions,
@NonNull int[] grantResults){
if (requestCode == REQUEST_PERMISSION_CODE) {
if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//perform your task
}
}
}
targetSdkVersion
在您的清单和/或build.gradle应该是23或更大。
但我的更新是sdk 23.我更新了我的问题。 – JamesMartins
不知怎的,实际使用的值似乎是19.重新检查所有的清单副本,清除缓存等。 –
非常感谢!有用!!! – JamesMartins