使用Intent在应用程序之间进行通信

时间:2014-04-30 20:00:53

标签: android-intent android-activity android-source start-activity

以下是从App A到App B进行通信的简单方法

// Call from App A
Intent intent = new Intent("some.Activity.inAppB");
startActivityForResult(intent, 0);

现在在上面的语句中,我想从AOSP跟踪,如果Intent调用的活动来自同一个应用程序或不同的应用程序。

特别是在AOSP中,我可以获得此信息。

[编辑]
确切地说,我想知道是否有办法跟踪“some.Activity.inAppB”是属于同一个应用程序还是属于不同的应用程序?如果活动不在同一个应用程序中,那么我可以找到该活动属于哪个应用程序的位置?

谢谢

1 个答案:

答案 0 :(得分:-1)

事实证明,PackageManager.resolveActivity()似乎是我正在寻找的那个。


Intent intent = new Intent("some.Activity.inAppB");
ResolveInfo ri = packageManagerInstance.resolveActivity(intent, PackageManager.MATCH_DEFAULT_ONLY);
if(ri != null) {
   ri.activityInfo.packageName // is the packageName for the activiy provided in the intent
}