一般申请权限都是在启动页或者主页面,比如之前我写的一篇文章:

Android 6.0 权限机制详解

 

但是都是在Activity 里申请的,今天闲着无事,在Fragment 里申请 发现了一点问题。

首先添加权限:

  

申请SD卡权限(Fragment)

 

 if(ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED)                {                    ActivityCompat.requestPermissions(getActivity(),new String[]{Manifest.permission.CALL_PHONE},0);                }

回调:

 @Override    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {        //super.onRequestPermissionsResult(requestCode, permissions, grantResults);        Log.e(TAG,"requestCode===="+requestCode);        switch (requestCode)        {            case 0:                if(grantResults[0]==PackageManager.PERMISSION_GRANTED)                {                    Log.e(TAG,"你申请了SD卡权限");                    Toast.makeText(getActivity(),"你申请了SD卡权限",Toast.LENGTH_LONG).show();                }                break;        }    }

代码运行,权限申请倒是成功了,但是没用回调!这是怎么回事呢?原来在Fragment 中 申请权限要这样写:

    if(ContextCompat.checkSelfPermission(getActivity(), Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED)                {                    requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},0);                }

运行起来:Log 

11-18 09:33:28.705 16497-16497/com.example.auser.androidcode E/PermissionFragment: requestCode====0    你申请了SD卡权限

这样就Ok了。

更多相关文章

  1. Android(安卓)adb的权限问题(可以不通过adb,而直接访问.db文件)
  2. android权限列表
  3. Android(安卓)studio3.0上运行opencv3.2.0自带人脸识别实例Demo
  4. Android(安卓)开发常见问题
  5. android adb shell 修改权限
  6. DELPHI XE5/6/7 android 无线真机调试
  7. service与Thread的区别
  8. Android(安卓)ionic工程中调用webrtc获取视频流
  9. Android(安卓)需要动态申请的权限以及EasyPermission 的使用

随机推荐

  1. 【基于zxing的编解码实战】zxing项目源码
  2. Windows Cocos2d-x(二) Visual Studio 编写
  3. android webview 设置背景透明色
  4. Android设置透明、半透明等效果
  5. Android(安卓)View三种熟悉——visible,i
  6. Android(安卓)Scripting Environment动手
  7. Android(安卓)sp & sp
  8. android 执行monkey指令的方法
  9. android手电筒
  10. Dagger2+Retrofit+RxJava