廣播監聽手機中應用程式是否安裝並卸載,監聽應用程式

來源:互聯網
上載者:User

廣播監聽手機中應用程式是否安裝並卸載,監聽應用程式
public class PackageReceiver extends BroadcastReceiver {

private static final int PACKAGE_NAME_INDEX = 8;

@Override
public void onReceive(Context context, Intent intent) {
if (intent != null) {
/**安裝程式的ACTION為Intent.ACTION_PACKAGE_ADDED*/
if (intent.getAction().equals(Intent.ACTION_PACKAGE_ADDED)) {
String data = intent.getDataString();
if (data == null || data.length() <= PACKAGE_NAME_INDEX) { return; }
String packageName = data.substring(PACKAGE_NAME_INDEX);
if (isAvilible(context, packageName)) {
/**說明安裝了應用程式套件*/
Uri uri = Uri.fromParts("package", packageName, null);
/**監聽應用卸載的ACTION*/
intent = new Intent(Intent.ACTION_DELETE, uri);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
else {
Toast.makeText(context, "手機並沒有安裝該應用!", Toast.LENGTH_SHORT).show();
}
}
}
}

/**檢測是否安裝了的用戶端*/
public static boolean isAvilible(Context context, String packageName) {
/**包管理器PackageManager*/
final PackageManager packageManager = context.getPackageManager();
/**所有已安裝程式的包資訊*/
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);
/**儲存所有已安裝程式的包名*/
List<String> pName = new ArrayList<String>();
if (pinfo != null) {
for (int i = 0; i < pinfo.size(); i++) {
String pn = pinfo.get(i).packageName;
pName.add(pn);
}
}
return pName.contains(packageName);
}

}

-----------AndroidManifest.xml中註冊廣播---------------------------

 <receiver android:name=".PackageReceiver">
           <intent-filter>
              <action android:name="android.intent.action.PACKAGE_ADDED" />
              <data android:scheme="package" />
              </intent-filter>
        </receiver>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.