您的位置:首页 > 移动开发 > Android开发

Android安装手机内存中的apk

2014-11-25 17:18 211 查看
1、一般情况下,下载的软件保存到sd卡中,如果需要从A程序中安装刚刚下载到sd卡中的apk,直接调用下面的代码就行

Intent intent = new Intent();

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setAction(android.content.Intent.ACTION_VIEW);

File file = new File(apkpath);

if (file.exists() && file.isAbsolute()) {

intent.setDataAndType(Uri.fromFile(file),

"application/vnd.android.package-archive");

context.startActivity(intent);

}

2、如果手机中没有sd卡,将apk下载到了手机内存,即/data/data/包名/files此时上面的代码无法执行,会报“解析包名异常”的错误,原因是没有权限,可通过下面的代码运行(需root权限)

String cmd = "chmod 777 " +apkpath;

try {

Runtime.getRuntime().exec(cmd);

} catch (Exception e) {

e.printStackTrace();

}

Intent intent = new Intent();

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

intent.setAction(android.content.Intent.ACTION_VIEW);

File file = new File(apkpath);

if (file.exists() && file.isAbsolute()) {

intent.setDataAndType(Uri.fromFile(file),

"application/vnd.android.package-archive");

context.startActivity(intent);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐