【发布时间】:2018-07-18 21:01:33
【问题描述】:
我正在使用ACTION_UNINSTALL_PACKAGE 卸载软件包,并尝试在删除后检索已删除软件包的应用程序名称。我似乎只能得到包名。我不能在包名上使用ApplicationInfo,因为包已经消失了。我尝试将值传递给意图,但由于它转到不属于我的另一个活动UninstallerActivity 它不存在。我不知道如何将字符串传递到 IntentFilter 数据字段,因为我需要将它用于包名称。我没有使用sendBroadcast,所以我不能使用它。
@Override
public void onClick(View v) {
Intent intent = new Intent(Intent.ACTION_UNINSTALL_PACKAGE);
intent.setData(Uri.parse("package:"+packageName));
intent.putExtra(Intent.EXTRA_RETURN_RESULT, true);
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("android.intent.action.PACKAGE_REMOVED");
intentFilter.addDataScheme("package");
mContext.registerReceiver(mUninstallReceiver, intentFilter);
startActivity(intent);
}
private BroadcastReceiver mUninstallReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
if (action != null) {
if (action.equals(Intent.ACTION_PACKAGE_REMOVED)) {
Uri intentData = intent.getData();
//the above only contains package name
}
}
}
}
如何将应用程序名称传递给此广播接收器?
更新
我最终只使用了一个成员变量,这不是我完全想要的,但它确实有效。
【问题讨论】:
标签: android android-fragments broadcastreceiver