編輯:關於Android編程
自己動手清除Android系統中的不良程序
陳躍峰
2014/6/29
最近在使用我的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,世界終於一片清靜了。
最後發現百度應用中心和應用寶裡面提供的中石化營業廳程序都是被篡改的程序,看來以後下載和安裝app還是小心一點的好。
把自己的這一小段經歷和大家一起分享,如果大家有更好的方法也請告訴我,謝謝。聯系方式:[email protected]
高德地圖提供全國地圖浏覽,地點搜索,交駕車查詢服務。可同時查看商家團購、優惠信息。當你在使用高德地圖中定位失敗後,許多功能都無法實現。那麼,該如何解決高德地
前言:最近做基於openfire聊天(仿QQ、微信)翻頁查看聊天記錄,為此做了根據時間倒序查看聊天記錄,先聲明這demo是根據id來倒序(原理和時間倒序一樣) 1,主界面
Paint類 *Paint類代表畫筆,用來描述圖形的顏色和風格,如線寬,顏色,透明度和填充效果等信息。 *使用Paint類時,需要先創建該類的對象,可以通過該類的構造函數
本文實例講述了Android編程之SurfaceView用法。分享給大家供大家參考,具體如下:關於surfaceView相關知識:View和SurfaceView主要區別