请回复,我被卡住了。我想动态获取一些权限。这是最好的想法还是其他想法?
如果一个应用程序可以授予另一个应用程序任何权限,那将非常不安全,你不觉得吗...
某些恶意人只需要说服你安装他的A应用程序;然后无论你安装什么其他B应用程序,该B应用程序都不必在安装时请求任何特定权限(这些权限稍后由A授权)——并且B仍然能够在您的设备上执行任何操作?
我真的希望你所问的是不可能的;-)
你的应用程序A可以提供一些内容提供者来访问信息。应用程序B可以使用A的内容提供者来获取信息。http://developer.android.com/guide/topics/providers/content-providers.html
但是这听起来有点像你想做一些邪恶的事情。如果你想了解更多信息,请提供更多关于你需要这样做的原因!
是的,可以通过使用PendingIntents来绕过一些方式实现。以下不是精确的代码片段,但应该能给您一个想法:
您无法转移权限,但可以将执行某些操作的能力从A传输到B。假设您想要传输执行特定 ACTION
的能力。
A需要创建一个挂起的意图:
Intent intent = new Intent(ACTION);
PendingIntent pIntent = PendingIntent.getActivity(context, requestCode, intent, flags);
A通过编组挂起的意图将其发送到B
Intent intent = new Intent(context, B.class);
intent.putExtra("pendingIntent", pIntent);
startActivity(intent);
在B处,我们反序列化挂起的意图,然后可以使用它来执行受限制的 ACTION
PendingIntent pIntent = intent.getExtra("pendingIntent");
pIntent.send();