方法一:最直接的就是知道apk的包名和啟動類名, 直接啟動
Intent mIntent = new Intent( );
ComponentName comp = new ComponentName("包名", "類名");
mIntent.setComponent(comp);
mIntent.setAction("android.intent.action.VIEW");


startActivity(mIntent);


方法二:如果只知道包名,在這種情況下通常也可以啟動,通常調用public abstract Intent getLaunchIntentForPackage (String packageName)

大概意思就是返回一個程式入口的Intent,就是JAVA程式的Main方法。直接startActivity(返回的intent)即可。


Intent mIntent = getPackageManager()getLaunchIntentForPackage(packageName);


if(mIntent != null) startActivity(mIntent);





方法三:就是如何只提供apk,如何啟動呢?在這種情況下,通常只能在sdk原始程式碼下來編譯完成


通常引入android.content.pm.PackageParser;


見code:


/*

* Utility method to get application information for a given packageURI

*/

public ApplicationInfo getApplicationInfo(Uri packageURI) {

final String archiveFilePath = packageURI.getPath();

PackageParser packageParser = new PackageParser(archiveFilePath);

File sourceFile = new File(archiveFilePath);

DisplayMetrics metrics = new DisplayMetrics();

metrics.setToDefaults();

PackageParser.Package pkg = packageParser.parsePackage(sourceFile, archiveFilePath, metrics, 0);

if (pkg == null) {

return null;

}

return pkg.applicationInfo;

}
這樣就可以得到該apk的包名,接下來方式就和方法二一樣則可
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()