是否有可能检测到android中特定应用程序的删除?如果有,怎么样?这是我检测删除任何包的代码,如何更改它以检测所需的应用程序?
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");}
}
}
这是清单
<receiver android:name="PackageChangeReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package"/>
</intent-filter>
答案 0 :(得分:6)
我认为您不能过滤特定包名称的广播。但是,您可以在收到广播时轻松检索(然后测试)包名称:
Uri uri = intent.getData();
String pkg = uri != null ? uri.getSchemeSpecificPart() : null;
(PackageMonitor上有一个很好的示例类DevDaily.com,它是上述代码片段的源代码。)