Android权限、Pending Intents与包管理详解
1. Android权限与Pending Intents
在Android系统中,每个应用都运行在受限的沙盒中,若要与其他应用或系统进行交互,就需要请求特定的权限。权限本质上是一种字符串,代表执行特定操作的能力,通常在应用安装时授予,并且(除开发权限外)在应用的整个生命周期内保持固定。权限还能映射到Linux的补充组ID,内核在授予系统资源访问权限之前会进行检查。
高级系统服务借助Binder获取调用应用的UID,并在包管理器数据库中查找其拥有的权限,以此来实施权限控制。应用清单文件中声明的组件相关权限会由系统自动执行,但应用也可以选择动态地进行额外的权限检查。此外,应用不仅能使用内置权限,还能自定义权限并将其与自身组件关联,从而实现对访问的控制。
每个Android组件都可以要求权限,内容提供者还能针对每个URI指定读写权限。
1.1 使用FLAG_GRANT_READ_URI_PERMISSION标志启动查看器应用
以下是一个获取附件意图的示例代码:
public Intent getAttachmentIntent(Context context, long accountId) {
Uri contentUri = getUriForIntent(context, accountId);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(contentUri, mContent
Android权限与包管理详解
超级会员免费看
订阅专栏 解锁全文
2万+

被折叠的 条评论
为什么被折叠?



