Android:从活动中获取有关呼叫应用的信息

时间:2013-07-12 19:06:01

标签: android validation android-intent android-activity

我想在导出的活动中实现细粒度保护机制。权限框架似乎不适合我的要求。

我正在考虑两种选择:

  • 使用Activity.getCallingPackage - 仅在使用startActivityForResult启动活动时才有效 - 如果可能,这是我想要避免的限制。
  • 使用Binder.getCallingUid - 在Activity中调用时,它返回本地UID,而不是调用UID。

有没有办法允许startActivity启动的活动检索有关调用应用程序的任何信息?

2 个答案:

答案 0 :(得分:0)

您可以在意图中添加额外信息。

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");

答案 1 :(得分:0)

  

有没有办法允许startActivity启动的活动检索有关调用应用程序的任何信息?

不,抱歉,超出您的startActivityForResult()黑客。 Android对“细粒度保护机制”的支持是围绕服务而非活动或其他组件设计的。