如何打开一个app

apk安装完成后,会生成一个存放apk安装的路径,获取方式如下:

public static String getSourceApkPath(Context context, String packageName) {
    if (TextUtils.isEmpty(packageName))
        return null;
    try {
        ApplicationInfo appInfo = context.getPackageManager().getApplicationInfo(packageName, 0);
        return appInfo.sourceDir;
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
    }

    return null;
}
切勿根据自己的逻辑去总结路径,

经过Google和自己测试,发现事情是这样的:

1.当你第一次安装一个APK到手机上时(假设packageName为com.sina.weibo),Android会再/data/app/目录下拷贝一个名为com.sina.weibo-1.apk的文件;

2.重新安装一遍(可能是Google Market升级,也可能是自己手动安装),/data/app/目录下,该文件名就会改为com.sina.weibo-2.apk;

3.再重新安装一遍,文件名就又会变为com.sina.weibo-1.apk,周而复始(1或者2)...

不知道Google为什么做这么一个设计,可能是为了防止App升级的时候被覆盖掉吧。

所以千万不能手动写路径。

路径获取到了之后,

 

这里所谓的安装就是打开apk 百度有很多答案,我给出一个我测试通过的代码

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setDataAndType(Uri.parse(path),
 "application/vnd.android.package-archive");
startActivity(intent);



还有第二种方法,直接通过包名打开app

PackageManager packageManager = getPackageManager();
Intent intent =  new  Intent();
intent = packageManager.getLaunchIntentForPackage( "com.xxx.xxxx" );
startActivity(intent);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值