我想将“未读短信计数”功能添加到我的应用程序中,这当然需要新的 Android 权限,因为并非我的所有用户都需要该功能,我想将其作为插件分发以避免太多主应用程序的权限。
应用程序已经在市场上,当我第一次发布它时我没有指定一个“UID”,所以共享的“UID”空间不是一个选项。
所以问题是,这是最好的方法吗?AIDL 远程服务是我唯一的选择吗?有没有更简单的解决方案?
我想将“未读短信计数”功能添加到我的应用程序中,这当然需要新的 Android 权限,因为并非我的所有用户都需要该功能,我想将其作为插件分发以避免太多主应用程序的权限。
应用程序已经在市场上,当我第一次发布它时我没有指定一个“UID”,所以共享的“UID”空间不是一个选项。
所以问题是,这是最好的方法吗?AIDL 远程服务是我唯一的选择吗?有没有更简单的解决方案?
AIDL 远程服务是我唯一的选择吗?
不。
有没有更简单的解决方案?
为您尝试访问的(未记录且不受支持的)创建ContentProvider
代理。ContentProvider
此目录中的项目演示了这样的代理和该代理的使用者。就我而言,我正在代理 . CallLog
,但相同的概念适用于任何ContentProvider
.
关键是:
让插件持有ContentProvider
它正在代理的所需权限
让应用程序和插件都定义一个自定义签名级权限以供此类插件使用 ( <permission>
)
让应用持有该权限 ( <uses-permission>
)
让插件通过该自定义权限 ( )保护ContentProvider
代理android:permission
这将允许您的应用访问插件的ContentProvider
代理,同时不会将访问代理的能力泄露ContentProvider
给其他人。