Android内部ストレージインストールapkファイル実装

2343 ワード

現在、国内市場のパクリ機が横行しており、アンドロイドの携帯電話のアップグレードも一日一日となっている.従来の携帯電話にはSDCARDがない可能性があるため、私たちのアプリはリソースをダウンロードできず、アプリを更新できない.このような状況に対して、以下の解決策がある.以下の関数で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 10万なぜ発表