Android:判断app是否为系统app
2015-10-29 17:34
295 查看
import android.app.Activity; import android.content.pm.ApplicationInfo; import android.content.pm.PackageInfo; import android.content.pm.PackageManager.NameNotFoundException; import android.os.Bundle; import android.widget.TextView; public class AppTypeActivity extends Activity { //软件类型判断软件 //未知软件类型 public static final int UNKNOW_APP = 0; //用户软件类型 public static final int USER_APP = 1; //系统软件 public static final int SYSTEM_APP = 2; //系统升级软件 public static final int SYSTEM_UPDATE_APP = 4; //系统+升级软件 public static final int SYSTEM_REF_APP = SYSTEM_APP | SYSTEM_UPDATE_APP; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //要判断的包名 String pname = "com.hiapk.marketpho"; //在text输出的文字 StringBuffer sb = new StringBuffer(); sb.append(pname).append(" is: "); switch (checkAppType(pname)) { case SYSTEM_REF_APP: //是系统rom集成软件 sb.append("SYSTEM_REF_APP"); break; case USER_APP: //是用户安装软件 sb.append("USER_APP"); break; default: //未知软件 sb.append("UNKNOW_APP"); break; } TextView tv = (TextView)findViewById(R.id.textView); tv.setText(sb.toString()); } /** * 检查app是否是系统rom集成的 * @param pname * @return */ private int checkAppType(String pname) { try { PackageInfo pInfo = getPackageManager().getPackageInfo(pname, 0); // 是系统软件或者是系统软件更新 if (isSystemApp(pInfo) || isSystemUpdateApp(pInfo)) { return SYSTEM_REF_APP; } else { return USER_APP; } } catch (NameNotFoundException e) { e.printStackTrace(); } return UNKNOW_APP; } /** * 是否是系统软件或者是系统软件的更新软件 * @return */ public boolean isSystemApp(PackageInfo pInfo) { return ((pInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0); } public boolean isSystemUpdateApp(PackageInfo pInfo) { return ((pInfo.applicationInfo.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0); } public boolean isUserApp(PackageInfo pInfo) { return (!isSystemApp(pInfo) && !isSystemUpdateApp(pInfo)); } }
转载自:/article/7836832.html
相关文章推荐
- Android之WebView的简单使用
- Android学习博客资源收藏
- iOS中的lldb研究
- iOS 8,9NagationBar 更改颜色
- express-session deprecated undefined resave option; provide resave option app.js :16:9
- android异常!!! FAILED BINDER TRANSACTION !!!
- iOS App打包流程
- canvas绘制图形
- Android 关于接口回调原理的解析
- iOS 公司开发者账号申请
- Cg per-pixel lighting with cookies
- Android属性动画分析
- android 如何显示模态的 DialogFragment。
- 2015 iOS推送流程详解,适合新手观看
- android线程池
- iOS系统状态栏动态隐藏问题
- android 代码控制TextView的字体加粗
- Android 缓存-ASimplecache
- Android studio 导入github工程
- -Android Studio导入Project的方法