我的应用程序在Android5.0及以下版本上运行良好,但当我尝试在Android6.0或更高版本的设备上运行时,出现了以下错误:
Writing exception to parcel
java.lang.SecurityException: No permission to write APN settings
at com.android.providers.telephony.TelephonyProvider.checkPermission(TelephonyProvider.java:4058)
at com.android.providers.telephony.TelephonyProvider.query(TelephonyProvider.java:2724)
at android.content.ContentProvider.query(ContentProvider.java:1058)
at android.content.ContentProvider$Transport.query(ContentProvider.java:245)
at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:112)
at android.os.Binder.execTransact(Binder.java:453)
任何帮助都将不胜感激。
最佳答案
也许你在运行时没有得到许可。那就这么做
int permissionCheck = ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_APN_SETTINGS);
if (permissionCheck != PackageManager.PERMISSION_GRANTED) {
//requesting permission
ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_APN_SETTINGS}, 1);
} else {
//permission is granted and you can change APN settings
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) {
switch (requestCode) {
case 1: {
if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
//premission granted by user
} else {
//permission denied by user
}
}
default:
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
关于android - 在Android 6上出现“没有写APN设置的权限”错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41203028/