手机文件夹中有大量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我就不知道了