判断服务是否开启,应用是否安装,并安装应用
//检查应用程序是否安装并安装应用程序 public boolean checkApkExist(Context context, String packageName) { if (packageName == null || "".equals(packageName)) return false; try { ApplicationInfo info = context.getPackageManager() .getApplicationInfo(packageName, PackageManager.GET_UNINSTALLED_PACKAGES); return true; } catch (NameNotFoundException e) { return false; } } private void installVoiceServiceApk() { Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setAction(Intent.ACTION_VIEW); String type = "application/vnd.android.package-archive"; AssetManager assets = ProActivity.this.getAssets(); try { //当文件比较大的时候不能用这个方法 来读取Stream ss.read(buffer) = -1 我的apk大小为5M InputStream ss = assets.open(AsrService.apk"); //使用下面这个方法 没问题 InputStream is = getClass().getResourceAsStream( "/assets/AsrService.apk"); FileOutputStream fos = ProActivity.this.openFileOutput( "AsrService.apk", Context.MODE_PRIVATE + Context.MODE_WORLD_READABLE); byte[] buffer = new byte[1024]; int len = 0; while ((len = is.read(buffer)) != -1) { fos.write(buffer, 0, len); } fos.flush(); is.close(); fos.close(); } catch (Exception e) { e.printStackTrace(); } File f = new File(ProActivity.this.getFilesDir().getPath() + "/AsrService.apk"); // String path = "file:///android_asset/ZXing.apk"; // File f = new File(path); intent.setDataAndType(Uri.fromFile(f), type); ProActivity.this.startActivity(intent); }
//检查服务是否启动 private boolean isStartService(Context ctx) { ActivityManager mActivityManager = (ActivityManager) ctx .getSystemService(Context.ACTIVITY_SERVICE); List<ActivityManager.RunningServiceInfo> currentService = mActivityManager .getRunningServices(100); final String igrsClassName = "com.iflytek.asr.AsrService"; //serviceName boolean b = igrsBaseServiceIsStart(currentService, igrsClassName); return b; } private boolean igrsBaseServiceIsStart( List<ActivityManager.RunningServiceInfo> mServiceList, String className) { for (int i = 0; i < mServiceList.size(); i++) { if (className.equals(mServiceList.get(i).service.getClassName())) { return true; } } return false; }
huidaoli版权所有:转载请注明出处,谢谢合作!