下午用小米真机调试时发现权限明明已经在AndroidManifest.xml中添加过了,但还是没有申请到应该有的权限,解决办法是下面的代码

//读写权限 具体权限加在字符串里面    private static String[] PERMISSIONS_STORAGE = {            Manifest.permission.READ_EXTERNAL_STORAGE,            Manifest.permission.WRITE_EXTERNAL_STORAGE    };        //请求状态码    private static int REQUEST_PERMISSION_CODE = 1;//循环申请字符串数组里面的权限,在小米中是直接弹出一个权限框等待用户确认,确认一次既将上面数组里面的权限全部申请if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {            if (ActivityCompat.checkSelfPermission(AlertActivity.this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {                ActivityCompat.requestPermissions(AlertActivity.this, PERMISSIONS_STORAGE, REQUEST_PERMISSION_CODE);            }        }

下面是使用例子:

public class AlertActivity extends AppCompatActivity {       //读写权限    private static String[] PERMISSIONS_STORAGE = {            Manifest.permission.READ_EXTERNAL_STORAGE,            Manifest.permission.WRITE_EXTERNAL_STORAGE    };    //请求状态码    private static int REQUEST_PERMISSION_CODE = 1;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_alert);                //循环申请字符串数组里面所有的权限        if (Build.VERSION.SDK_INT > Build.VERSION_CODES.LOLLIPOP) {            if (ActivityCompat.checkSelfPermission(this, Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED) {                ActivityCompat.requestPermissions(this, PERMISSIONS_STORAGE, REQUEST_PERMISSION_CODE);            }        }    }@Overridepublic void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {    if (requestCode == CODE_FOR_WRITE_PERMISSION){        if (permissions[0].equals(Manifest.permission.REQUEST_PERMISSION_CODE)            &&grantResults[0] == PackageManager.PERMISSION_GRANTED){           Toast.makeText(context, "用户同意使用权限", Toast.LENGTH_SHORT).show();        }else{            //用户不同意,向用户展示该权限作用            Toast.makeText(context, "用户不同意,向用户展示该权限作用", Toast.LENGTH_SHORT).show();            if (!ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {                AlertDialog dialog = new AlertDialog.Builder(this)                        .setMessage("该功能需要赋予访问的权限,不开启将无法正常工作!")                        .setPositiveButton("确定", new DialogInterface.OnClickListener() {                            @Override                            public void onClick(DialogInterface dialog, int which) {                                finish();                            }                        })                        .setNegativeButton("取消", new DialogInterface.OnClickListener() {                            @Override                            public void onClick(DialogInterface dialog, int which) {                                finish();                            }                        }).create();                dialog.show();                return;            }            finish();        }    }}     }

看不懂私聊

更多相关文章

  1. 关于Android开发过程中,createImage的一些总结。
  2. android onUserLeaveHint和onUserInteraction
  3. framework中自定义系统级权限
  4. 从输入流中获取数据并以字节数组返回,这种输入流可以来自Android
  5. 【android】存储数组数据到SharedPreferences
  6. Android(安卓)权限表
  7. android WebView在应用内打开网页的问题
  8. Android创建快捷方式
  9. Android之Searchable

随机推荐

  1. android之弹出气泡PopupWindow
  2. android 关于再按一次退出程序效果
  3. MediaScannerReceiver
  4. android proguard 错误处理
  5. Android: Launch the HOME screen
  6. Android(安卓)超级水平仪 金属红色仪表风
  7. Android(安卓)获取View宽高
  8. js判断移动端系统
  9. Android(安卓)定义全局 ToastUtils
  10. Android(安卓)TTS的简单应用