簡體   English   中英

如何使廣播接收器監聽Android中特定應用的事件?

[英]How to make broadcast receiver to listen event for particular app in android?

我正在開發一個包含應用程序列表的應用程序,當用戶從顯示給他的列表中單擊特定應用程序時,他將定向到可以從該網站下載該應用程序以收聽應用程序的網站。我在android menifest.xml中添加了廣播接收器問題是廣播接收器是否會在系統以及從我的應用程序中下載的任何應用程序都監聽。我要廣播接收器僅在打開和關閉我的應用程序時才應該監聽來自應用程序的事件。

這是我的Java代碼:-

public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    // Check if the application is install or uninstall and display the message accordingly
    if (intent.getAction().equals("android.intent.action.PACKAGE_ADDED")) {
        // Application Install
        Log.e("Package Added:-", intent.getData().toString());

    } else if (intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {

        Log.e("Package Removed:-", intent.getData().toString());
    } else if (intent.getAction().equals("android.intent.action.PACKAGE_REPLACED")) {
        Log.e("Package Replaced:-", intent.getData().toString());
    }


}

}

這是我的xml代碼:-

<receiver android:name=".Receiver">
        <intent-filter android:priority="100">
            <action android:name="android.intent.action.PACKAGE_INSTALL"/>
            <action android:name="android.intent.action.PACKAGE_ADDED"/>
            <action android:name="android.intent.action.PACKAGE_REMOVED"/>
            <data android:scheme="package"/>
        </intent-filter>
    </receiver>

kinldy幫我,我從一周開始嘗試。

Intent BroadcastReceiver收到的Intent的信息,您無法知道應用程序是否安裝了該軟件包。 從技術上講,您的應用沒有安裝任何東西,系統會這樣做(第三方應用沒有特權安裝其他應用)。

您將必須從Intent數據中檢查包名稱,並將其與用戶隨您的應用下載的應用進行比較。 那是你所能做的最好的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM