2012-03-25 2 views
2

Ist es möglich, das Entfernen einer bestimmten Anwendung in Android zu erkennen? Wenn ja wie? dies ist mein Code, der das Entfernen eines Pakets erkennt, wie kann ich es ändern, um die gewünschte Anwendung zu erkennen?Wie kann ich das Entfernen eines bestimmten Pakets in Android erkennen?

import android.content.*; 
import android.util.Log; 

public class PackageChangeReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context ctx, Intent intent) { 
if(intent.getAction().equals("android.intent.action.PACKAGE_REMOVED")) {Log.i("action","the package is removed");} 
} 
} 

und das ist das Manifest

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

Antwort

6

Ich glaube nicht, dass Sie die Sendungen für einen bestimmten Paketnamen filtern. Sie können jedoch abgerufen werden (und dann testen), um die Paketnamen leicht genug, wenn Sie die Sendung erhalten:

Uri uri = intent.getData(); 
String pkg = uri != null ? uri.getSchemeSpecificPart() : null; 

(. Es gibt eine schöne Beispielklasse, PackageMonitor, bei DevDaily.com dass meine Quelle für das obige Codefragment war)

+0

thx für die Hilfe :) – emna

+2

Aber bitte tun Sie dies nicht, wenn Sie wirklich, wirklich brauchen. Es gibt sehr wenige Gründe, dies tatsächlich zu tun. Es wäre wirklich schön, wenn Sie das, was Sie damit erreichen möchten, veröffentlichen könnten, damit das zugrunde liegende Bedürfnis angesprochen werden kann. Es ist unvorteilhaft, dass Apps dies ohne triftigen Grund tun, denn es bedeutet jedes Mal, wenn der Benutzer eine App installiert oder aktualisiert, die Sie starten. Jetzt, wenn 10 der Apps, die der Benutzer auf seinen Geräten hat, dies tun, verursachen sie eine beschissene Erfahrung. Sei nicht eine dieser Apps. – hackbod

+0

@emna - ich zweite hackbod's Kommentar. Was versuchst du damit zu erreichen? –

Verwandte Themen