赞
踩
在Andori的开发中,尤其的是launcher 的开发中需要判断一个已经安装的应用是否为系统应用。这里介绍一个好用的方法,代码如下:
- // Check if the apk is in system folder
- public boolean isSystemApk(int position) {
- if (position >= mList.size())
- return false;
- ResolveInfo resolveInfo = mList.get(position);
- Log.d(TAG, resolveInfo.activityInfo.packageName + " get the path"
- + resolveInfo.activityInfo.applicationInfo.sourceDir.toString());
- ApplicationInfo ai;
- try {
- ai = pm.getApplicationInfo(
- resolveInfo.activityInfo.applicationInfo.packageName, 0);
- if ((ai.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
- return true;
- }
- } catch (NameNotFoundException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- return false;
- }

具体的讨论可以参考: http://stackoverflow.com/questions/8784505/how-do-i-check-if-an-app-is-a-non-system-app-in-android
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。