赞
踩
报错信息:
For security reasons, the system cannot issue a Uri permission grant to content://com.joson.adphonelauncher.fileProvider/name/DBoothLayout/AdPhoneLauncher.apk [user 0]; use startActivityAsCaller() instead
java.lang.SecurityException: Permission Denial: opening provider com.joson.adphonelauncher.MyProvider from ProcessRecord{8d253bb 1430:com.android.packageinstaller/u0a18} (pid=1430, uid=10018) that is not exported from UID 1000
原因是系统把provider给过滤了一下,最简单办法就是修改一下源码。
文件路径:
frameworks/base/services/core/java/com/android/server/am/ActivityManagerService.java
在 ActivityManagerService.java (AMS) 中的checkGrantUriPermissionLocked()方 法内的如下代码块中打印的:
- // Bail early if system is trying to hand out permissions directly; it
- // must always grant permissions on behalf of someone explicit.
- final int callingAppId = UserHandle.getAppId(callingUid);
- if ((callingAppId == SYSTEM_UID) || (callingAppId == ROOT_UID)) {
- if ("com.android.settings.files".equals(grantUri.uri.getAuthority())) {
- // Exempted authority for cropping user photos in Settings app
- } else if ("com.joson.adphonelauncher.fileProvider".equals(grantUri.uri.getAuthority())) {
-
- }else {
- Slog.w(TAG, "For security reasons, the system cannot issue a Uri permission"
- + " grant to " + grantUri + "; use startActivityAsCaller() instead");
- return -1;
- }
- }
参考:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。