3

我想将“未读短信计数”功能添加到我的应用程序中,这当然需要新的 Android 权限,因为并非我的所有用户都需要该功能,我想将其作为插件分发以避免太多主应用程序的权限。

应用程序已经在市场上,当我第一次发布它时我没有指定一个“UID”,所以共享的“UID”空间不是一个选项。

所以问题是,这是最好的方法吗?AIDL 远程服务是我唯一的选择吗?有没有更简单的解决方案?

4

1 回答 1

4

AIDL 远程服务是我唯一的选择吗?

不。

有没有更简单的解决方案?

为您尝试访问的(未记录且不受支持的)创建ContentProvider代理。ContentProvider

此目录中的项目演示了这样的代理和该代理的使用者。就我而言,我正在代理 . CallLog,但相同的概念适用于任何ContentProvider.

关键是:

  • 让插件持有ContentProvider它正在代理的所需权限

  • 让应用程序和插件都定义一个自定义签名级权限以供此类插件使用 ( <permission>)

  • 让应用持有该权限 ( <uses-permission>)

  • 让插件通过该自定义权限 ( )保护ContentProvider代理android:permission

这将允许您的应用访问插件的ContentProvider代理,同时不会将访问代理的能力泄露ContentProvider给其他人。

于 2013-06-07T14:43:27.223 回答