android 應用程序安裝卸載(安裝應用寶後自動彈出卸載應用寶)

獲取程序安裝卸載廣播

電腦上有騰訊管家,作爲安卓開發,用真機測試的比較多,鄙人算一個,不喜歡用應用寶,當你卸載了應用寶之後,插上USB,有時候就回靜默安裝應用寶,然後彈出應用寶獲取什麼什麼權限,特別煩

手機在沒有安裝應用寶之前,開發一點問題也沒有,手機也沒有問題,靜默安裝後,好多天的週期手機會自動重啓,死機等情況

今天又死機了一次,決定做一個當應用寶安裝後彈出卸載框的程序  來提示我們卸載這個可惡的應用寶,我用的是華爲3x

 

接收安裝&卸載廣播

package com.yqy.app;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.Uri;
import android.widget.Toast;

public class SetupLisenerReceiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		// 接收安裝廣播
		if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {
			String packageName = intent.getDataString();
//			Toast.makeText(context, "安裝了:" + packageName + "包名的程序",
//					Toast.LENGTH_SHORT).show();
			// 安裝了:package:com.tencent.android.qqdownloader包名的程序
			if (packageName.equals("package:com.tencent.android.qqdownloader")) {
				Uri packageURI = Uri.parse(packageName);
				Intent uninstallIntent = new Intent(Intent.ACTION_DELETE,
						packageURI);
				// Receiver中使用startActivity 必須加上FLAG_ACTIVITY_NEW_TASK
				uninstallIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
				// 在Receiver中儘量少使用startActivity 但是此功能必須這樣
				context.startActivity(uninstallIntent);
			}
		}
		// 接收卸載廣播
		if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {
//			String packageName = intent.getDataString();
//			Toast.makeText(context, "卸載了:" + packageName + "包名的程序",
//					Toast.LENGTH_SHORT).show();

		}

	}

}

 

mainfest註冊廣播

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.yqy.app"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />

    <uses-permission android:name="android.permission.INTERNET" />  
    <uses-permission android:name="android.permission.RESTART_PACKAGES"/>  
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.yqy.app.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        
        <receiver android:name=".SetupLisenerReceiver"  
                  android:label="@string/app_name">   
            <intent-filter>  
             <action android:name="android.intent.action.PACKAGE_ADDED" />  
             <action android:name="android.intent.action.PACKAGE_REMOVED" />  
              <data android:scheme="package" />  
            </intent-filter>  
        </receiver>  
        
    </application>

</manifest>


廣播接收器的註釋寫的很清楚,不僅試用於應用寶,同樣適用於任何我們安卓開發者討厭那些靜默安裝程序

資源下載地址android 應用程序安裝卸載(卸載應用寶)

發佈了62 篇原創文章 · 獲贊 5 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章