繁体   English   中英

如何在Android中使用广播接收器获取应用程序包名称?

[英]how to get Package name of app with broadcast receiver in android?

我想获取用户尝试取消安装的应用程序的程序包名称。我正在使用以下代码:

List< ActivityManager.RunningTaskInfo > taskInfo = am.getRunningTasks(1); 

Log.d("topActivity", "CURRENT Activity ::" + taskInfo.get(0).topActivity.getClassName());

ComponentName componentInfo = taskInfo.get(0).topActivity;
Log.d("topActivity", "CURRENT Package ::" + componentInfo.getPackageName());

但它会给出当前正在运行的活动的packge名称。 我想获取该特定应用的程序包名称。 有人知道请帮助我。

  • 为创建接收器

    <receiver android:name=".PackageReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED"/> <action android:name="android.intent.action.PACKAGE_CHANGED"/> <action android:name="android.intent.action.PACKAGE_REMOVED"/> <category android:name="android.intent.category.DEFAULT"/> <data android:scheme="package"/> </intent-filter> </receiver>

  • 在OnReceive()中,通过intent.getAction()获得操作
    通过intent.getData().getSchemeSpecificPart()获取包

包名称在您从BroadcasReceiver获得的Intent中有,使用“ getData()”函数,其中有已安装/未安装的包的ComponentName

首先以您要的方式获取ComponentName 之后,获取ApplicationInfo实例

PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo(componentName.getPackageName(), 0);

现在获取包名称为appInfo.packageName。 在这里检查

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM