nul*_*ter 29 android android-permissions android-6.0-marshmallow
假设我在运行时请求权限,如下所示:
ActivityCompat.requestPermissions(thisActivity,
new String[]{Manifest.permission.READ_CONTACTS},
MY_PERMISSIONS_REQUEST_READ_CONTACTS);
Run Code Online (Sandbox Code Playgroud)
Android系统会创建一个弹出对话框来请求权限.如何为该对话框定义自定义布局?
yra*_*lik 46
简短的回答是,你做不到.
正如android文档所说:
当您的应用调用requestPermissions()时,系统会向用户显示标准对话框.您的应用无法配置或更改该对话框.如果您需要向用户提供任何信息或说明,则应在调用requestPermissions()之前执行此操作,如"解释应用程序需要权限的原因"中所述.
因此,目前无法为权限对话框定义自定义布局.
您可以在此处找到更多详细信息:http://developer.android.com/training/permissions/requesting.html
Ana*_*ani 18
我已经为权限创建了自定义对话框:
if (ContextCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
if (ActivityCompat.shouldShowRequestPermissionRationale((Activity) context, Manifest.permission.READ_EXTERNAL_STORAGE)) {
AlertDialog.Builder alertBuilder = new AlertDialog.Builder(context);
alertBuilder.setCancelable(true);
alertBuilder.setTitle("Permission necessary");
alertBuilder.setMessage("External storage permission is necessary");
alertBuilder.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void onClick(DialogInterface dialog, int which) {
ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);}});
AlertDialog alert = alertBuilder.create();
alert.show();
} else {
ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, MY_PERMISSIONS_REQUEST_READ_EXTERNAL_STORAGE);}
return false;}
else {
return true;
}
Run Code Online (Sandbox Code Playgroud)
希望对你有帮助 :)
| 归档时间: |
|
| 查看次数: |
33148 次 |
| 最近记录: |