[英]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.