问题:截屏保存分享,部分手机的分享失败。(出现比较多的是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