首页 > 代码库 > 判断服务是否开启,应用是否安装,并安装应用

判断服务是否开启,应用是否安装,并安装应用

//检查应用程序是否安装并安装应用程序        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;        }

 

判断服务是否开启,应用是否安装,并安装应用