android中的Packagemanager
2016-06-22 23:42
375 查看
可以通过adb shell的命令查看
adb shell dumpsys package com.examle.xx adb uninstall [-k] <package> - remove this app package from the device
信息参考:
http://www.cnblogs.com/xingfuzzhd/p/3374504.html
PackageManager主要是管理应用程序包,通过它就可以获取应用程序信息。
它可以实现的功能如下: 1、安装,卸载应用 2、查询permission相关信息 3、查询Application相关信息(application,activity,receiver,service,provider及相应属性等) 4、查询已安装应用 5、增加,删除permission 6、清除用户数据、缓存,代码段等
流氓软件经常用到的东西
判断手机已安装某程序的方法: private boolean isAvilible(Context context, String packageName){ final PackageManager packageManager = context.getPackageManager();//获取packagemanager List< packageInfo> pinfo = packageManager.getInstalledPackages(0);//获取所有已安装程序的包信息 List<String> pName = new ArrayList<String>();//用于存储所有已安装程序的包名 //从pinfo中将包名字逐一取出,压入pName list中 if(pinfo != null){ for(int i = 0; i < pinfo.size(); i++){ String pn = pinfo.get(i).packageName; pName.add(pn); } } return pName.contains(packageName);//判断pName中是否有目标程序的包名,有TRUE,没有FALSE } 判断后的逻辑: //已安装,打开程序,需传入参数包名:"com.skype.android.verizon" if(isAvilible(this, "com.skype.android.verizon")){ Intent i = new Intent(); ComponentName cn = new ComponentName("com.skype.android.verizon", "com.skype.android.verizon.SkypeActivity"); i.setComponent(cn); startActivityForResult(i, RESULT_OK); } //未安装,跳转至market下载该程序 else { Uri uri = Uri.parse("market://details?id=com.skype.android.verizon");//id为包名 Intent it = new Intent(Intent.ACTION_VIEW, uri); startActivity(it); }
相关文章推荐
- Android真机调试
- Android Studio导出Jar包的方法探究
- Android 设置theme中的坑
- android脸萌3
- Android 选择图片,加载图片,显示图片 综合案例
- Android系统透明栏(Translucent Bars)使用SystemBarTint的实现攻略
- android常见异常总结
- android开发脚本之过滤特定包名的log
- Android Development Notes-4(BroadcastReceiver, Manifests)
- Android init.rc文件浅析
- Android自定义组件之简单组合
- RecyclerView中itemDecoration
- Android中的内存储、外存储概念
- (OK)(OK) Fedora23-NS3-Android-x86-MANETs-Testing
- android的TelephoneManager
- android MotionEvent中getX()和getRawX()的区别
- Android获取服务端数据解析保护
- Android 2D翻转
- Android中的ViewRootImpl类源码解析
- Android SdCard写入权限