Android assests 应用自带apk安装方法
2015-03-13 16:22
316 查看
public class main extends Activity { private boolean installedMxPlayerFlag; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.main); installedMxPlayerFlag = isAlreadyInstalled(this, "com.mxtech.videoplayer.pro"); if (!installedMxPlayerFlag) { String fileDir=Environment.getExternalStorageDirectory() .getAbsolutePath() + "/download/"; String filepath = fileDir+"MX_Player_Pro.apk"; File apkFile = new File(filepath); if (apkFile.exists()) { Log.d("apk", "====apkFile.exists====="); Intent i = new Intent(Intent.ACTION_VIEW); i.setDataAndType(Uri.parse("file://" + filepath), "application/vnd.android.package-archive"); startActivity(i); } else { // write to filepath Log.d("apk", "====WriteApkToDisk====="); File dir=new File(fileDir); if(!dir.exists()){ dir.mkdirs(); } boolean writeApkFlag = WriteApkToDisk(filepath); if (writeApkFlag) { Intent i = new Intent(Intent.ACTION_VIEW); i.setDataAndType(Uri.parse("file://" + filepath), "application/vnd.android.package-archive"); startActivity(i); }else{ Log.d("apk", "====WriteApkToDisk=====!!!!!!!!!!!!failed"); } } } Button btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { startActivityFromActivityName("com.mxtech.videoplayer.pro", "com.mxtech.videoplayer.ActivityScreen"); } }); } private boolean isAlreadyInstalled(Context context, String packageName) { boolean installedMxPlayerFlagTmp = false; final PackageManager packageManager = context.getPackageManager();// 获取packagemanager List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 获取所有已安装程序的包信息 List<String> pName = new ArrayList<String>();// 用于存储所有已安装程序的包名 // 从pinfo中将包名字逐一取出,压入pName list中 if (pinfo != null) { for (int i = 0; i < pinfo.size(); i++) { if (packageName.trim().equalsIgnoreCase( pinfo.get(i).packageName)) { installedMxPlayerFlagTmp = true; Log.d("apk", pinfo.get(i).packageName); } } } return installedMxPlayerFlagTmp;// 判断pName中是否有目标程序的包名,有TRUE,没有FALSE } public boolean WriteApkToDisk(String filepath) { boolean writeApkFlag = false; try { InputStream is = getAssets().open("MX_Player_Pro.apk"); File file = new File(filepath); file.createNewFile(); FileOutputStream fos = new FileOutputStream(file); byte[] temp = new byte[1024]; int i = 0; while ((i = is.read(temp)) > 0) { fos.write(temp, 0, i); } fos.close(); is.close(); writeApkFlag = true; } catch (FileNotFoundException e) { e.printStackTrace(); writeApkFlag = false; } catch (IOException e) { e.printStackTrace(); writeApkFlag = false; } return writeApkFlag; } public void startActivityFromActivityName(String packName, String ActivityName) { ComponentName cn = new ComponentName(packName, ActivityName); Intent i = new Intent(); String type = "video/* "; Uri uri = Uri .parse("http://proiptv.iptv101.com:8000/live/testkorax/070215/3.ts"); i.setDataAndType(uri, type); i.setComponent(cn); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(i); } PackageManager pm = null; public void startActivityFromLauchIntent(String packageName) { pm = getPackageManager(); Intent i = pm.getLaunchIntentForPackage(packageName); String type = "video/* "; Uri uri = Uri .parse("http://trailers.asiamoviepass.eu/amp/hi/bbi-014.flv"); i.setDataAndType(uri, type); if (null != i) { startActivity(i); } } }
相关文章推荐
- paip.android APK安装方法大总结系统应用的安装
- 用Android系统自带的安装apk的api安装应用完成后点击图标总是从第一个activity开始
- eclipse 上调试android的自带应用方法 二 (Re-installation failed due to different application signatures.)
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用 ...
- [Android]实现静默安装APK的两种方法
- [Android]实现静默安装APK的两种方法
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)
- Android 网络应用重点———使用HttpGet 下载apk文件并安装
- android adb push 与 adb install的比较(两种安装APK的方法)
- 【转】eclipse 上调试android的自带应用方法
- android第三方应用apk安装和运行控制解决方案
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用 ...
- android第三方应用apk安装和运行控制解决方案
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等
- 【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等) 收藏
- [Android]实现静默安装APK的两种方法
- android adb push 与 adb install的比较(两种安装APK的方法)
- [Android]实现静默安装APK的两种方法
- Android 学习历程之三 Android模拟器 命令行方式 安装和删除apk文件方法