当前位置: 代码迷 >> Android >> 怎样判断一个APK安装后是不是是应用程序
  详细解决方案

怎样判断一个APK安装后是不是是应用程序

热度:66   发布时间:2016-04-28 00:36:07.0
怎样判断一个APK安装后是否是应用程序
手机文件夹中有大量APK,我想通过程序遍历这些APK,解析之后,判断这些APK那些是可以前台启动的。大部分APK都有main activity,通过包名启动后,都会有主界面。但是一些APK,安装之后,是没有UI界面的,启动后,是一个service。比如谷歌街景.apk,还有一些插件类APK。
我的问题是:怎样在安装之前判断这些APK不是UI应用程序,而是一个service类的APK?或者在安装之后,启动之前可以判断吗?

我现在是通过这种方式启动APK的:
try{  
PackageManager pm = mContext.getPackageManager();  
Intent intent=new Intent(); 
    intent =pm.getLaunchIntentForPackage(mPackageName); 
   mContext.startActivity(intent);
    }catch(Exception e){  
        return 0;
    }
------解决思路----------------------

PackageManager pm = this.getPackageManager();
PackageInfo info = pm.getPackageArchiveInfo(
Environment.getExternalStorageDirectory()
+ "/SPZLock_2.3.9_oqq.apk", PackageManager.GET_ACTIVITIES);
ApplicationInfo appInfo = null;
if (info != null) {
appInfo = info.applicationInfo;
ActivityInfo[] activityInfos = info.activities;
ServiceInfo[] services=info.services;

}

可以通过这样的方法来判断是否含有activity。
但是判断是否含有android.intent.action.MAIN的activity我就不知道了
  相关解决方案