我想在导出的活动中实现细粒度的保护机制。权限框架似乎不适用于我的要求。
我正在考虑两种选择:
- 使用 Activity.getCallingPackage - 仅当活动以 startActivityForResult 启动时才有效 - 这是我希望尽可能避免的限制。
- 使用 Binder.getCallingUid - 在 Activity 中调用时,它返回本地 UID,而不是调用 UID。
有没有办法让以 startActivity 开始的活动检索有关调用应用程序的任何信息?
我想在导出的活动中实现细粒度的保护机制。权限框架似乎不适用于我的要求。
我正在考虑两种选择:
有没有办法让以 startActivity 开始的活动检索有关调用应用程序的任何信息?
您可以在意图中添加额外信息。
Intent i = new Intent(this, NextClass.class);
i.putExtra("extra", "This is some extra information";
startActivity(i);
您可以通过以下方式从 NextClass 检索数据:
Intent i = getIntent();
String extraStuff = i.getStringExtra("extra");
有没有办法让以 startActivity 开始的活动检索有关调用应用程序的任何信息?
不,对不起,超出了你的startActivityForResult()
黑客。Android 对“细粒度保护机制”的支持是围绕服务设计的,而不是活动或其他组件。