Android 内部存储安装apk文件实现

简介: 目前国内市场的山寨机横行,安卓手机升级也是一天一个样,对于原来老手机可能没有SDCARD,导致我们的APP不能下载资源,无法更新APP,针对这种情况有以下解决方案。通过以下函数判断是否有SD卡再判断下载到哪个目录下。

目前国内市场的山寨机横行,安卓手机升级也是一天一个样,对于原来老手机可能没有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();
	}

  

 

目录
相关文章
|
6天前
|
存储 Java 开发工具
在Eclipse配置安装Android详细教程(新手)
在Eclipse配置安装Android详细教程(新手)
27 1
|
5天前
|
存储 API Android开发
Android 11 中的存储机制更新,面试心得体会
Android 11 中的存储机制更新,面试心得体会
|
5天前
|
设计模式 缓存 Java
补齐Android技能树——从AGP构建过程到APK打包过程,安卓rxjava面试
补齐Android技能树——从AGP构建过程到APK打包过程,安卓rxjava面试
|
5天前
|
XML Dart Java
Flutter插件开发之APK自动安装,字节跳动Android岗面试题
Flutter插件开发之APK自动安装,字节跳动Android岗面试题
|
6天前
|
XML API Android开发
android S 上 安装apk出现android.os.FileUriExposedException
android S 上 安装apk出现android.os.FileUriExposedException
22 6
|
6天前
|
开发工具 Windows
Android4.0安装时需要更新软件包(原创)
Android4.0安装时需要更新软件包(原创)
19 3
|
6天前
|
Ubuntu Java Shell
反编译apk文件,得到其源代码的方法!!
反编译apk文件,得到其源代码的方法!!
16 1
|
6天前
|
Java Android开发
Android零基础入门(二)gradle的安装和详解
Android零基础入门(二)gradle的安装和详解
22 0
|
6天前
|
Oracle Java 关系型数据库
Android零基础入门(一)配置环境和安装Android Studio
Android零基础入门(一)配置环境和安装Android Studio
21 0
|
6天前
|
Android开发
Android 高通平台集成无源码apk示例
Android 高通平台集成无源码apk示例
22 0