[英]how to get Package name of app with broadcast receiver in android?
i want to get package name of app that user is trying to unistall.. Im using following code : 我想获取用户尝试取消安装的应用程序的程序包名称。我正在使用以下代码:
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());
but it's giving packge name of current running activity. 但它会给出当前正在运行的活动的packge名称。 I want to get that particular app's package name.
我想获取该特定应用的程序包名称。 Anyone know please help me.
有人知道请帮助我。
Create receiver for 为创建接收器
<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>
In OnReceive() get action by intent.getAction()
在OnReceive()中,通过
intent.getAction()
获得操作
get package by intent.getData().getSchemeSpecificPart()
通过
intent.getData().getSchemeSpecificPart()
获取包
包名称在您从BroadcasReceiver获得的Intent中有,使用“ getData()”函数,其中有已安装/未安装的包的ComponentName
。
Firstly get ComponentName
in the way you are getting. 首先以您要的方式获取
ComponentName
。 After that get ApplicationInfo instance 之后,获取ApplicationInfo实例
PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo(componentName.getPackageName(), 0);
Now get package name as appInfo.packageName. 现在获取包名称为appInfo.packageName。 check here
在这里检查
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.