如何打开一个app
2015-10-21 14:13
459 查看
apk安装完成后,会生成一个存放apk安装的路径,获取方式如下:
切勿根据自己的逻辑去总结路径,
经过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
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
相关文章推荐
- Android数据库高手秘籍(一)——SQLite命令
- Android复习随笔之SharedPreferences
- iOS 简单的计时器NSTimer
- @Responsebody与@RequestBody @RequestMapping @PathVariable获取请求路径变量
- Android_07_监控应用的状态
- BlockKit的使用
- android内存优化
- Swift - 使用CoreLocation实现定位(经纬度、海拔、速度、距离等)
- Swift - 使用CoreLocation实现定位(经纬度、海拔、速度、距离等)
- ios 开发日记17-单击手势和双击手势共存问题
- android service 详解
- Android_07_开机自启动
- Service和IntentService的区别
- iOS 通知的使用,以及场景(未确定版本)
- 安卓在AndroidManifest.xml文件中设置Android程序的启动界面方法
- android下载apk 断点续传
- Android 秒杀倒计时 解决listview上下滑动计时改变问题
- android自定义控件之禁止ListView滚动
- iOS 静态库中使用宏定义区分iPhone模拟器与真机---备用
- Unity制作一个望远镜与查看器摄像机