在非UserInterface单板上授予动态android.permission.WRITE_SETTINGS权限,可以通过以下步骤实现:
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (!Settings.System.canWrite(context)) {
Intent intent = new Intent(Settings.ACTION_MANAGE_WRITE_SETTINGS);
intent.setData(Uri.parse("package:" + context.getPackageName()));
context.startActivity(intent);
}
}
这段代码会检查当前应用是否具有WRITE_SETTINGS权限,如果没有,则会跳转到系统设置页面,让用户手动授权。
<receiver android:name=".PermissionReceiver">
<intent-filter>
<action android:name="android.intent.action.MANAGE_WRITE_SETTINGS" />
</intent-filter>
</receiver>
public class PermissionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (Settings.System.canWrite(context)) {
// 权限已授权,可以进行相关操作
} else {
// 权限未授权,需要提示用户授权
}
}
}
}
通过以上步骤,可以在非UserInterface单板上授予动态android.permission.WRITE_SETTINGS权限。请注意,WRITE_SETTINGS权限属于敏感权限,需要用户手动授权,因此在应用中使用时需要适当处理授权结果,并向用户解释为什么需要该权限。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云