热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android10适配的常见问题及解决方案

一、Uri适配在Android10中打开本地资源你会发现这种错误,file:不被允许作为一个附加的Uri的意图,否则会抛出FileUriExposedExceptio

一、Uri适配
在Android 10 中打开本地资源你会发现这种错误, file:// 不被允许作为一个附加的 Uri 的意图,否则会抛出 FileUriExposedException

android.os.FileUriExposedException: file:///storage/emulated/0/

该如何处理呢?

1.在manifest中申明如下:

<providerandroid:authorities&#61;"你的包名.fileprovider" #一定要是包名否则没有授权哦。android:name&#61;"android.support.v4.content.FileProvider"android:grantUriPermissions&#61;"true"android:exported&#61;"false"><meta-dataandroid:name&#61;"android.support.FILE_PROVIDER_PATHS"android:resource&#61;"&#64;xml/filepaths"/>
provider>

2.在res下新建xml 文件夹&#xff0c;并在其中新建一个filepaths.xml的文件


<paths><root-path path&#61;"." name&#61;"external_storage_root" />
paths>

3.适配打开的Uri

Intent intent &#61; new Intent();
Uri uri &#61; null;
if (Build.VERSION.SDK_INT >&#61; Build.VERSION_CODES.O) {uri &#61; FileProvider.getUriForFile(context, "你的包名.fileprovider", new File(filesPath));intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);//申请你的权限。用完之后会自动释放。
} else {uri &#61; Uri.parse("file://" &#43; filesPath);
}
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_VIEW);

若你想为此建立一个公共的lib或者动态获取这些包名&#xff0c;那如何操作呢?

你需要在第一步中&#xff0c;设置authorities为android:authorities&#61;"${applicationId}.fileprovider"&#xff0c;并在第三步中设置FileProvider.getUriForFile(context, context.getPackageName()&#43;".fileprovider", new File(filesPath));

二、Notification导致的崩溃问题

java.lang.IllegalArgumentException: Invalid notification (no valid small icon): Notification(pri&#61;0 ……

解决方法: Android 10中icon不能为空&#xff0c;若是你不想设置&#xff0c;可以设置为-1即可&#xff0c;否则崩溃。

三、.悬浮框权限

报错信息

android.view.WindowManager $ BadTokenException: Unable to add window android.view.ViewRootImpl$W&#64;77869a9 – permission denied for window type 2002

解决方案&#xff1a;

if(Build.VERSION.SDK_INT >&#61; Build.VERSION_CODES.O){type &#61; WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY }
else{type &#61; WindowManager.LayoutParams.TYPE_PHONE
}


推荐阅读
author-avatar
Z-19932502872833
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有