多语言展示
当前在线:274今日阅读:162今日分享:23

自己动手清除Android系统中的不良程序

最近在使用我的Nexus7时,总是经常莫名其妙的弹出一些广告弹窗,还会自动下载一些应用程序,还会在桌面上生成一个叫做“精彩应用”的图标,这个快捷方式关联的程序显示的内容和广告内容是一致的,很是烦人,使用360手机卫士和乐安全都发现不了这个不良程序,所以就自己动手来清除这个程序。         由于Nexus 7平时用于测试程序,安装的应用很多,手动删除了一些可疑的应用以后还是不行,猜测是某些app可能被人篡改了,就不再去删除app了,而把目光转向了桌面快捷方式上。         既然生成了“精彩应用”这个图标,而且点击可以启动程序,但是安卓系统的快捷方式和app之间没有很直观的联系,这就需要写些代码来解决了,下面是我的一些经验:
方法/步骤
1

获取快捷方式对应的包名       众所周期,每个安卓app依靠一个唯一的包名就行区分,只要能发现这个包名,剩下就简单了。       获取快捷方式需要读写系统设置的权限                               读取快捷方式的代码如下:/**          * 显示快捷方式信息          * @param context 上下文对象          */         publicstatic void printShortcutInfo(Context context){                   try{                            ContentResolverresolver = context.getContentResolver();                 Cursor cursor = resolver.query(Uri.parse('content://com.android.launcher2.settings/favorites?notify=true'),null,null,null,null);                 int index = 0;                 while(cursor.moveToNext()){                          intnum = 5;                          try{                                    Stringinfo = '';                                    for(inti = 0;i < num;i++){                                              info+= cursor.getString(i) + ',';                                    }                                    System.out.println(index+++ '  ' + info);                          }catch(Exceptione1){}                 }                 cursor.close();                   }catch(Exceptione){                            e.printStackTrace();                   }         }       通过执行这些代码,发现“精彩应用”这个快捷方式对应的包名是“cn.com.hkgt.gasapp”,通过这个包名也不能直接找到对应的程序,那下面就自己编码卸载这个程序,看看到底是哪里出了问题。

2

根据包名卸载app      对于没有root的程序,卸载时只是调用卸载界面,但是这个对于我来说足够了。      卸载程序需要的权限:                            卸载程序的方法代码:                   /**              * 卸载软件              *@param context 上下文对象              *@param pkgName 包名              */             public static void deletePackage(Contextcontext,String pkgName){                       try{                                Uri packageURI =Uri.parse('package:' + pkgName);                                    Intent uninstallIntent = newIntent(Intent.ACTION_DELETE, packageURI);                                    context.startActivity(uninstallIntent);                       }catch(Exception e){                                e.printStackTrace();                       }             }       执行这个方法卸载上面包名的程序时,终于发现是中石化营业厅程序被人篡改了,卸载该app,去他们的官网再次下载安装app,世界终于一片清静了。

注意事项

把自己的这一小段经历和大家一起分享,如果大家有更好的方法也请告诉我,谢谢。

推荐信息