Android 内部存储安装apk文件实现
目前国内市场的山寨机横行,安卓手机升级也是一天一个样,对于原来老手机可能没有SDCARD,导致我们的APP不能下载资源,无法更新APP,针对这种情况有以下解决方案。
通过以下函数判断是否有SD卡再判断下载到哪个目录下。
/**
* 安装应用
*/
public static void update(File apkFile, Context context) {
Intent intent = new Intent(Intent.ACTION_VIEW);
if (apkFile != null && apkFile.exists()) {
chmod(apkFile.getAbsolutePath());//授权
intent.setDataAndType(Uri.fromFile(apkFile),
"application/vnd.android.package-archive");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
} else {
MLog.makeText("安装失败,安装文件未找到");
}
} public static void chmod(String pathc) {
String chmodCmd = "chmod 666 " + pathc;
try {
Runtime.getRuntime().exec(chmodCmd);
} catch (Exception e) {
e.printStackTrace();
}
} public static boolean isMounted() {
return Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED);
} /**
* 初始文件可以存储的位置
* @param context
*/
public static void init(Context context) {
FileUtil.context = context;
StringBuffer buffer = new StringBuffer();
String pName = context.getPackageName();
if (Tools.isMounted()) {
buffer.append(Environment.getExternalStorageDirectory()
.getAbsolutePath());
buffer.append(File.separator);
buffer.append(pName);
fileDir = buffer.toString();
} else {
buffer.append(context.getFilesDir().getAbsolutePath());
buffer.append(File.separator);
buffer.append(pName);
fileDir = buffer.toString();
}
File file = new File(fileDir);
if (!file.exists())
file.mkdir();
}
- 本文固定链接: http://www.ithtw.com/910.html
- 转载请注明: leehom 2015年01月22日 于 IT十万为什么 发表
Android 内部存储安装apk文件实现的更多相关文章
- android 内部存储 安装apk
在做应用自动更新模块下载apk时遇到了内部存储和sd卡存储两种情况,存在sk卡中存储apk可以正常安装,可是在内部存储中安装apk时出现了parse error的问题. 在网上搜了搜,大致分为两种方案 ...
- 如何在Android模拟器上安装apk文件
1.运行SDK Manager,选择模拟器,并运行模拟器 SDK Manager应用 2.将需要安装的apk文件复制到platform-tools目录下(默认在:D:\tools\android\ad ...
- Android模拟器中安装APK文件(转)
1.平台环境:Win7系统, 安装Eclipse,android4.0(sdk) 2.随便创建个工程(HelloWorld),结果如下: 3.运行(Run HelloWorld),启动模拟器,如下所示 ...
- Android 在代码中安装 APK 文件
废话不说,上代码 private void install(String filePath) { Log.i(TAG, "开始执行安装: " + filePath); File a ...
- Android系统加载Apk文件的时机和流程分析(1)--Android 4.4.4 r1的源码
本文博客地址:https://blog.csdn.net/QQ1084283172/article/details/80982869 Android系统在启动时安装应用程序的过程,这些应用程序安装好之 ...
- unity调用安卓方法实现安装apk文件(androidx)
原文链接:点击打开 unity想要实现安装apk文件需要与安卓通讯,所以需要自己来实现安卓代码. 第一步先要新建一个安卓项目提供给unity来使用,我这里使用的工具是android studio4.1 ...
- eclipse下Android无法自动生成apk文件怎么办?
eclipse下Android无法自动生成apk文件怎么办? 现象:创建android工程后,通过手动build/clean或自动build均无法在bin文件夹下生成.apk文件 解决方法:进入win ...
- Monkey学习(3)如何在Android模拟器中安装apk
1.运行SDK Manager,选择模拟器,并运行模拟器,我这里用的是已经配置好的模拟器“RedMI” 2.已启动好的模拟器“RedMI” 3.记住需要安装apk文件的位置,我这里放在了F盘的根目录下 ...
- Xamarin android如何反编译apk文件
Xamarin android 如何反编译 apk文件 这里推荐一款XamarinAndroid开发的小游戏,撸棍英雄,游戏很简单,的确的是有点大.等一下我们来翻翻译这个Xamarin Android ...
随机推荐
- C#.net连接SQLite及遇到的问题
1.Slite简介 SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需 ...
- 解决linux ping: unknown host www.baidu.com(转)
解决方案: 如果某台Linux服务器ping不通域名, 如下提示: [root@localhost ~]# ping www.baidu.comping: unknown host www.ba ...
- eclipse - tomcat 远程调试
步骤:前提是tomcat上应用是eclipse打包部署上去的,代码一致. 1,在机器A上部署应用remote-debug之前,需要为机器A上的tomcat配置调试端口.在${tomcat}/bin下加 ...
- 监听enter事件
document.onkeydown=keyDownSearch; function keyDownSearch(e) { // 兼容FF和IE和Opera var theEvent = e || w ...
- sass教程
sass教程 1. 使用变量; sass让人们受益的一个重要特性就是它为css引入了变量.你可以把反复使用的css属性值 定义成变量,然后通过变量名来引用它们,而无需重复书写这一属性值.或者,对于仅使 ...
- STRUTS2核心控制器:FilterDispatcher
1. 在 struts1.x 系列中 , 所有的请求是通过一个 servlet(ActionServlet) 来管理控制的 , 在 Struts2.X 而是经过一个 Filter 来处理请求的. St ...
- linux LVM 逻辑卷
fdisk pvcreate vgcreate lvcreate 查看显示 创建 删除 扩容 激活 扫描查找 LV lvdisplay lvcreate lvremove lvextend lvcha ...
- GetMemory()函数
NO1 void GetMemory(char *p) { p=(char *)malloc(100); } void Test() { char * str=NULL; GetMemory(str) ...
- Drools
http://www.infoq.com/news/2009/06/drools-5.0-release http://www.javacodegeeks.com/2014/03/event-proc ...
- delphi 基础书籍推荐
本文所推荐的书,我均仔细读过,受益良多. 1. Pascal 精要.下载Pascal精要 本书讲Pascal 语言基本知识. 2. Object Pascal 参考(中英文对照版).下载Object ...