我想获取用户试图取消的应用程序包名称..我使用以下代码:
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名称。我想获得该特定应用程序的软件包名称。有人知道请帮助我。
答案 0 :(得分:1)
为
创建接收器 <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()
答案 1 :(得分:0)
包名称存在于您从BroadcasReceiver获取的Intent中,使用&#34; getData()&#34;函数,已安装/卸载的软件包ComponentName
。
答案 2 :(得分:0)
首先以你获得的方式获得ComponentName
。之后获取ApplicationInfo实例
PackageManager pm = context.getPackageManager();
ApplicationInfo appInfo = pm.getApplicationInfo(componentName.getPackageName(), 0);
现在获取包名称为appInfo.packageName。 check here