launcher相关小功能

来源:互联网 发布:固态用软件优化 编辑:程序博客网 时间:2024/04/30 14:34

最近在做launcher的开发,收集到很多细节小功能,分享下:

1、获取本机所有已安装的应用

public static List<ResolveInfo> mApps;

<pre name="code" class="java">/** * 通过PackageManager的api查询已经安装的apk */private void loadApps() {Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);mApps = getPackageManager().queryIntentActivities(mainIntent, 0);}

2、如何访问应用

上面已经获取到所有应用,显示到列表后监测点击再加上简单两行代码,便可以轻松访问
<pre name="code" class="java"><span style="white-space:pre"></span>/** * 我们根据position即可知道被点击的项目是哪一项了。现在我们根据被点击的项目,取出对应的应用程序数据(主要是其中的主activity), * 然后启动activity */@Overridepublic void onItemClick(AdapterView<?> parent, View view, int position,long id) {ResolveInfo info = mApps.get(position);// 该应用的包名String pkg = info.activityInfo.packageName;// 应用的主activity类String cls = info.activityInfo.name;ComponentName componet = new ComponentName(pkg, cls);Log.i("package", pkg);Log.i("package", cls);Intent i = new Intent();i.setComponent(componet);startActivity(i);}

3、如何利用pm命令执行操作
<pre name="code" class="java"><span style="white-space:pre"></span>/** * 基于pm命令的卸载app的方式 */private void pmcHideTheApp(String str) {// adb push core codeString command = "pm uninstall " + str;Process process = null;DataOutputStream os = null;try {process = Runtime.getRuntime().exec("su");// 设备必须有root权限,才能执行命令,这里是获取root权限os = new DataOutputStream(process.getOutputStream());os.writeBytes(command + "\n");os.writeBytes("exit\n");os.flush();} catch (Exception e) {e.printStackTrace();}}

0 0
原创粉丝点击