2012-10-23 33 views
0

我正在开发一个项目,以在Android设备中提供某种共享功能。为此我创建了一个系统服务。现在,当在应用程序中调用服务时,它基本上获得了AndroidManifest.xml中开发人员设置的权限。现在我的服务在应用程序的上下文中工作。我希望服务通过蓝牙/无线网络共享一些数据。对于这个我假设有两种方法 -添加新的权限组android

  1. 要创建一个新的权限组并修改PackageManager来理解这个新的权限集。
  2. 而不是使用全局系统上下文(类似于root用户)传递应用程序上下文。我不确定这一点。如果我被允许这样做。 public DataSharingService(Context context) { super(); this.mContext = context;} 我可以通过其他方式初始化this.mContext来实现此目的并拥有不同的权限集。

回答

0

我想你需要创建一个自定义的系统服务。此服务将在SystemServer的上下文中运行,因此它将获得执行几乎所有操作的权限。然后,在您的应用程序中,您可以使用此服务(但您需要为此更新SDK)。

+0

该服务确实由SystemServer启动,因此它意味着它拥有所有的权限,但是当应用程序调用该服务实例时它将获得应用程序上下文。 –

+0

我发现这是你的问题:http://stackoverflow.com/questions/13055477/system-server-and-application-permisions/13192859我解释了如何解决那里的问题。 – Yury