我们可以通过自定义对话框来询问用户是否同意通知权限,并且可以使用SharedPreferences来存储用户的选择。以下是示例代码:
首先,在AndroidManifest.xml中添加以下权限:
然后,在Activity中创建自定义对话框:
public class MainActivity extends AppCompatActivity {
private SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
boolean permission = sharedPreferences.getBoolean("notification_permission", false);
if (!permission) {
showPermissionDialog();
}
}
private void showPermissionDialog() {
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Enable Notification Permission?");
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
sharedPreferences.edit().putBoolean("notification_permission", true).apply();
Intent intent = new Intent(Settings.ACTION_NOTIFICATION_POLICY_ACCESS_SETTINGS);
startActivityForResult(intent, 0);
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
sharedPreferences.edit().putBoolean("notification_permission", false).apply();
finish();
}
});
builder.show();
}
}
当用户点击“是”按钮时,我们将使用SharedPreferences存储权限为“真”,并启动通知策略访问设置页面以允许用户授予权限。如果用户点击“否”按钮,我们将使用SharedPreferences存储权限为“假”,并关闭应用程序。