我正在尋找使用PackageManager
來調用第三方應用程序的可能性。主要的問題是,我的方法callApp
實現了另一個不可訪問的解決方案的接口。我只收到沒有包裝信息的參數appName
。在不同的項目中獲取包含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);
}