zoukankan      html  css  js  c++  java
  • 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();
    	}
    

      

  • 相关阅读:
    Debugging Auto Layout:Ambiguous Layouts
    Debugging Auto Layout:Unsatisfiable Layouts
    Debugging Auto Layout
    Auto Layout Cookbook:Views with Intrinsic Content Size
    编译地址与运行地址
    Memory Controller
    ARM寄存器
    C++指针悬挂(赋值运算符重载)
    多态性,友元与静态成员 基础知识小结
    ARM 汇编指令集
  • 原文地址:https://www.cnblogs.com/spring87/p/4525458.html
Copyright © 2011-2022 走看看