2013-02-19 97 views
0

我有一个应用程序A,它包含活动,服务和接收器。 我需要修改我的代码,以便任何未来的应用程序(例如:B和C)都可以启动位于应用程序A中的服务,并且可能访问其首选项文件。共享应用程序组件

但是,我想限制对应用程序A组件的访问权限,仅限于由我开发的应用程序。

难道有人请指出我在这个正确的方向吗?

谢谢!

+1

你需要实现一个[Content Provider](http://developer.android.com/guide/topics/providers/content-provider-basics.html)并添加你喜欢哪些应用程序访问什么的权限。 – 2013-02-19 12:10:41

+0

ContentProviders并不能解决我的问题,我需要共享组件(活动,服务)而不是数据库 – Shatazone 2013-02-19 12:22:13

+0

如果您正在讨论在不同的应用程序中使用相同类的代码,那么您可以创建一个通用库并将其导入作为其他应用程序的外部JAR。 – 2013-02-19 12:25:27

回答

0

我只是找到了解决办法:使用同一台Android

:在这两个应用程序sharedUserId将尽正是我需要的。

0

它可以通过组件的权限来完成。

应用程序也可以与 权限保护它自己的组件(活动, 服务,广播接收机和内容提供商)。它可以使用Android (在android.manifest.permission中列出)或其他 应用程序声明的任何权限。或者它可以定义它自己的。一个新的权限被声明为 与元素。

查看this doc的例子。

+0

也许这是最接近的解决方案到目前为止我的问题,但是是否有可能将这些权限授予具有相同签名的应用程序?换句话说,我不希望第三方应用获得此权限... – Shatazone 2013-02-19 12:28:02

+0

您是否有信息称为您的组件? – Jin35 2013-02-19 12:35:20