博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 获得已安装应用
阅读量:6767 次
发布时间:2019-06-26

本文共 3024 字,大约阅读时间需要 10 分钟。

hot3.png

List<PackageInfo> packages = getPackageManager().getInstalledPackages(0);
PackageInfo packageInfo = packages.get(i);         AppInfo tmpInfo = new AppInfo();         tmpInfo.appName = packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();         tmpInfo.packageName = packageInfo.packageName;         tmpInfo.versionName = packageInfo.versionName;         tmpInfo.versionCode = packageInfo.versionCode;         tmpInfo.appIcon = packageInfo.applicationInfo.loadIcon(getPackageManager());     
if((packageInfo.applicationInfo.flags&ApplicationInfo.FLAG_SYSTEM)==0){            //非系统应用}else{            //系统应用        }   

--------------以上是获取已经安装的程序列表数据------------------ 

http://www.cnblogs.com/mainroadlee/archive/2011/05/23/android_get_installed_app.html 

 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;
                }
        }
---------------------检查是否已经安装的packageName应用-------- 

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=101372 

     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;
        }
--------------------  //检查服务是否启动-------------------- 

http://www.eoeandroid.com/forum.php?mod=viewthread&tid=101372 

转载于:https://my.oschina.net/lingxia1989/blog/152530

你可能感兴趣的文章
Zookeeper之——关于Zookeeper的那些事
查看>>
Spring 与 ActiveMQ 整合代码
查看>>
类的定义
查看>>
SOLR--7--传统关系型数据库在全文检索中的劣势
查看>>
代码上线流程以及版本发布小结
查看>>
MySQL多表查询
查看>>
如何挑选适合的前端框架?
查看>>
帝国cms、织梦cms、phpcms等负载测试总结
查看>>
hive报Unable to instantiate org.apache.hadoop.hive.
查看>>
Linux安装Python3.6.5
查看>>
关于ArrayList的5道面试题
查看>>
java 中hashcode 与 equals的关系
查看>>
Java多线程系列--“JUC原子类”02之 AtomicLong原子类
查看>>
WEB调试工具--FireBug的使用技巧
查看>>
Oracle数据库恢复数据
查看>>
国产服务器的安全监控之法
查看>>
可勾选的ExpandableListView
查看>>
笨方法学python I
查看>>
MySQL中视图(view)的基本语法
查看>>
【转】chattr命令使用详解
查看>>