简体   繁体   中英

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. 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()
    get package by intent.getData().getSchemeSpecificPart()

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

Firstly get ComponentName in the way you are getting. After that get ApplicationInfo instance

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

Now get package name as appInfo.packageName. check here

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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