是否有可能在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");}
}
}
Run Code Online (Sandbox Code Playgroud)
这是显而易见的
<receiver android:name="PackageChangeReceiver">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_REMOVED"/>
<data android:scheme="package"/>
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
我认为您不能过滤特定包名称的广播.但是,您可以在收到广播时轻松检索(然后测试)包名称:
Uri uri = intent.getData();
String pkg = uri != null ? uri.getSchemeSpecificPart() : null;
Run Code Online (Sandbox Code Playgroud)
(在DevDaily.com上有一个很好的示例类,PackageMonitor,它是我上面代码片段的源代码.)
| 归档时间: |
|
| 查看次数: |
3878 次 |
| 最近记录: |