动态申请权限

xiaoxiao2021-02-28  122

问题:截屏保存分享,部分手机的分享失败。(出现比较多的是6.0以上系统的华为手机)


Unable to decode stream: java.io.FileNotFoundException: android.content.pm.PackageManager$NameNotFoundException: com.huawei.android.hwoucbeta at android.app.ApplicationPackageManager.getApplicationInfoAsUser(ApplicationPackageManager.java:363) at android.app.ApplicationPackageManager.getApplicationInfo(ApplicationPackageManager.java:345) at com.huawei.android.hwouc.util.HwOucUtility.checkHwoucBetaApplicationExist(HwOucUtility.java:5571) at com.huawei.android.hwouc.util.HwOucConfig.readAutoDownloadSetting(HwOucConfig.java:1668) at com.huawei.android.hwouc.biz.impl.service.WifiAutoDownloadManageService.onCreate(WifiAutoDownloadManageService.java:44) at android.app.ActivityThread.handleCreateService(ActivityThread.java:3328) at android.app.ActivityThread.-wrap5(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1659) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:156) at android.app.ActivityThread.main(ActivityThread.java:6524) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:941) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:831)

分析解决:

1,原因是:部分手机的6.0以上的系统,不仅要在配置文件中添加,还要动态申请权限

2,这里的分享,要将图片保存到本地,还要从本地中读取!所以,需要保存和读取手机的内存权限

3,在BaseActivity的添加:

private static final int MY_PERMISSION_REQUEST_CODE = 10000; /** * 检查是否拥有指定的所有权限 */ private boolean checkPermissionAllGranted(String[] permissions) { for (String permission : permissions) { if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) { // 只要有一个权限没有被授予, 则直接返回 false return false; } } return true; } 4,在onCreate方法中 /* * 第 1: 检查是否有相应的权限 */ boolean isAllGranted = checkPermissionAllGranted( new String[]{ Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE } ); if (!isAllGranted){ // 一次请求多个权限, 如果其他有权限是已经授予的将会自动忽略掉 ActivityCompat.requestPermissions( this, new String[] { Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE }, MY_PERMISSION_REQUEST_CODE ); } 5,* 注意 不知道是个人什么问题,如果将图片保存成png格式的,就保存失败;如果保存成JPG,就保存成功

需要截屏的,参考下面这个:

直接在屏幕上,选取区域进行截屏分享到QQ、微信:http://blog.csdn.net/qq_32519693/article/details/72794089
转载请注明原文地址: https://www.6miu.com/read-44487.html

最新回复(0)