AndroidMenifest.xml中android:sharedUserId="android.uid.system权限问题

在AndroidMenifest.xml中我们可以看到android:sharedUserId="android.uid.system"
但是有了这句后,就无法对sd卡进行读写操作,比如在SD卡中创建一个新文件夹,是创建不成功的。但是如果把android:sharedUserId="android.uid.system"注释掉,就可以在SD卡进行IO操作了。

在Settings中android:sharedUserId="android.uid.system"是不可少的,少了它很多Settings下应用直接开不了,或一开就报错。

解决方法一:


vold 模块里的 Volume.cpp文件
在调用doMount的语句里做一下修改~
doMount(devicePath, path, false, false, false,1000, 1015, 0702, true)

doMount(devicePath, path, false, true, false,1000, 1015, 0002, true)

编译以后试试

解决方法二:

把SD卡操作的功能独立出去,做成一个独立的APK,然后在原项目中调用改功能就可以了。



### 关于 AndroidManifest.xml 的配置及其常见问题 #### 配置概述 `AndroidManifest.xml` 是每一个 Android 应用程序不可或缺的一部分,此文件不仅定义了应用程序的主要组件——活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver),以及内容提供者(ContentProvider)[^1];还设定了这些组件的行为方式与访问权限。 #### 基本结构和元素说明 该 XML 文档由 `<manifest>` 根节点包裹着其他子节点构成。除了必不可少的 `package` 和命名空间声明外 (`xmlns:android="http://schemas.android.com/apk/res/android"`), 还可能包含如下重要部分: - **application**: 描述应用层面的信息,例如图标(icon)、标签(label)等; - **uses-sdk**: 明确指出最低支持 API 版本(minSdkVersion)、目标 SDK (targetSdkVersion) 及最大兼容版本(maxSdkVersion); - **permission / uses-permission**: 定义自定义权限或请求必要的系统级权限; - **activity/service/broadcastreceiver/contentprovider**: 注册并描述各个组件的具体行为特征[^2]。 #### 权限管理 为了保护敏感操作不被恶意利用,在 `AndroidManifest.xml` 中可以通过添加特定条目来申请所需的权限。例如,如果想要让应用能够发送短信,则需加入如下代码片段: ```xml <uses-permission android:name="android.permission.SEND_SMS"/> ``` 值得注意的是,随着 Android 6.0(API level 23)引入动态权限机制之后,某些危险等级较高的权限还需要在运行时向用户请求授权[^3]。 #### 解决常见错误提示 当遇到诸如 "No activity found to handle intent" 或者 "Permission Denial:" 类型的日志报错时,通常意味着存在未注册 Activity 组件或是缺少相应权限声明等问题。此时应仔细检查 `AndroidManifest.xml`, 确认所有使用的组件都已正确定义,并且对于那些需要额外许可的操作均已适当处理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值