4 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
您可以使用PackageManagerclass獲得ApplicationInfo:
final PackageManager pm = getApplicationContext().getPackageManager();
ApplicationInfo ai;
try {
ai = pm.getApplicationInfo( this.getPackageName(), 0);
} catch (final NameNotFoundException e) {
ai = null;
}
final String applicationName = (String) (ai != null ? pm.getApplicationLabel(ai) : "(unknown)");
這將返回<application>清單清單標(biāo)簽中定義的應(yīng)用程序名稱。

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊
嘗試這個(gè)
final String packageName = "my.application.package"
PackageManager packageManager= getApplicationContext().getPackageManager();
String appName = (String) packageManager.getApplicationLabel(packageManager.getApplicationInfo(packageName, PackageManager.GET_META_DATA));
并替換packageName為您的包裹全名。
您可以使用where 用于Activity并使用getActivity()作為片段來獲取packageName 。mContext.getPackageName()mContext = yourActivityName.this

TA貢獻(xiàn)1845條經(jīng)驗(yàn) 獲得超8個(gè)贊
public static String getAppNameFromPkgName(Context context, String Packagename) {
try {
PackageManager packageManager = context.getPackageManager();
ApplicationInfo info = packageManager.getApplicationInfo(Packagename, PackageManager.GET_META_DATA);
String appName = (String) packageManager.getApplicationLabel(info);
return appName;
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
return "";
}
}

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
看來您能夠收到添加新軟件包的事件,這是一個(gè)非常簡單的概念,它可以獲取有關(guān)該軟件包的所有相關(guān)信息,例如此類信息就是應(yīng)用程序名稱,因此這里就是概念
->您的設(shè)備包管理器具有與之相關(guān)的所有信息,因此,只需為其創(chuàng)建一個(gè)對(duì)象,它將為您提供與包名稱相關(guān)的所有信息。
->您還應(yīng)該記住,該意圖為您提供了“ package:real_package_name”,因此首先您必須首先通過溢漏(我用過的)或任何其他簡單的String實(shí)現(xiàn)獲得真實(shí)名稱。
->這是代碼,希望您能得到想要的,我也提供有關(guān)如何獲取應(yīng)用程序名稱,應(yīng)用程序圖標(biāo),應(yīng)用程序版本,應(yīng)用程序版本代碼等的信息。
public class NewAppReciver extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals("android.intent.action.PACKAGE_ADDED")){
String[] a=intent.getData().toString().split(":");
String packageName=a[a.length-1];
List<PackageInfo> packageInfoList = context.getPackageManager().getInstalledPackages(0);
for (int i = 0; i < packageInfoList.size(); i++) {
PackageInfo packageInfo = packageInfoList.get(i);
if(packageInfo.packageName.equals(packageName)){
String appName = packageInfo.applicationInfo.loadLabel(context.getPackageManager()).toString();
String appVersion = packageInfo.versionName;
int appVerCode = packageInfo.versionCode;
Drawable app_icon = packageInfo.applicationInfo.loadIcon(context.getPackageManager());
}
}
}
}
}
但是在卸載應(yīng)用程序時(shí),您只能獲得軟件包名稱,因?yàn)樵谛遁d時(shí),系統(tǒng)會(huì)刪除所有其他信息。
- 4 回答
- 0 關(guān)注
- 826 瀏覽
添加回答
舉報(bào)