【发布时间】:2016-02-17 19:00:16
【问题描述】:
我正在寻找使用PackageManager 调用第3 方应用程序的可能性。主要问题是,我的方法callApp 实现了另一个解决方案的接口,这是不可访问的。我只收到参数appName 没有包信息。
Intent 初始化后,我必须手动添加我的包路径(此处:com.example)。
我想要实现的是,Android 会找到与该名称匹配的包的全名。因为这个方法是另一个项目的一部分,我不能使用getApplicationContext().getPackageName(); 或类似的。有什么想法吗?
public void callApp(int methodIndicator, String appName, String command, Map<String, String> args) {
PackageManager pm = context.getPackageManager();
// < Should only be the name
Intent launchIntent = pm.getLaunchIntentForPackage("com.example."+appName);
launchIntent.putExtra("method", methodIndicator);
launchIntent.putExtra("command", command);
launchIntent.putExtra("args", new HashMap<String, String>(args));
launchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
context.startActivity(launchIntent);
}
【问题讨论】:
标签: java android android-intent packages