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#的输入输出及基本类型
//输出 Console.WriteLine("摩西摩西"); Console.Write("hollo");不带回车的 注意: 1.注意大小写敏感.(快捷键操 ...
- 自定义Toast样式-两行文本居中显示
toast可以设置自定义的view和显示位置.下面是一个简单的例子,复杂些的就是改变其布局文件就可以了. /** * @author BMR * @ClassName: ToastWithTwoTex ...
- RESTful API学习与实践
参考文献: 1.Learn About ASP.NET Web API 2.深入浅出REST 3.Infoq上“深入探索REST”系列文章 4.RESTful API设计的一点经验 5.Angular ...
- 通过一个正则表达式,让SQL Server数据库的带参sql也支持位置参数语法!
.NET Framework 2.0 中,Microsoft 在 System.Data.Common 名称空间下定义了一组类用来让程序员编写适用于不同数据库的数据访问代码,而且还在 Enterpri ...
- sql防注入代码
function defend_sql($string, $force = 1) { $preg = "select|insert|and|or|update|delete|\'|\/\*| ...
- 解决ie6支持最大高度最小高度的方法
1.IE6支持max-height解决方法 IE6支持最大高度解决CSS代码:.yangshi{max-height:1000px;_height:expression((document.docum ...
- IE6下不能定义1px高度的容器和IE6 双边距
(1)触发的条件---定义一个div,将容器的高度设置成1px (2) 编码得到的结果---在IE6浏览器中,容器的高度不是1px 而是18px (3)出现问题的原因---是因为IE6浏 ...
- xampp环境安装swoole
手动编译php运行环境经常遇到函数库依赖的问题,这个错误搞定了,又蹦出来那个错误,很棘手,为了快速搭建一个swoole开发环境,于是另辟蹊径,直接下载安装xampp for linux,然后在用xam ...
- [原创]浅谈如何使用gcc开发NT核心驱动程序
原文链接:[原创]浅谈如何使用gcc开发NT核心驱动程序 一谈到在 Win NT 下开发核心驱动程序,可能不少人首先都会想到微软“正统”的VC来.诚然,用VC 配合 WINDDK 的确工作的不错,但或 ...
- linux开机自动挂载NTFS-WINDOWS分区
1.安装ntfs-3g-2009.4.4.tgz 2.输入fdisk -l 看一下分区 由此可见:/dev/sda5,6,7 即是windows下的D,E,F盘(NTFS格式). 3.vim /etc ...