4 回答
TA贡献1856条经验 获得超17个赞
您可以使用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>清单清单标签中定义的应用程序名称。
TA贡献1794条经验 获得超8个赞
尝试这个
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贡献1845条经验 获得超8个赞
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贡献1891条经验 获得超3个赞
看来您能够收到添加新软件包的事件,这是一个非常简单的概念,它可以获取有关该软件包的所有相关信息,例如此类信息就是应用程序名称,因此这里就是概念
->您的设备包管理器具有与之相关的所有信息,因此,只需为其创建一个对象,它将为您提供与包名称相关的所有信息。
->您还应该记住,该意图为您提供了“ package:real_package_name”,因此首先您必须首先通过溢漏(我用过的)或任何其他简单的String实现获得真实名称。
->这是代码,希望您能得到想要的,我也提供有关如何获取应用程序名称,应用程序图标,应用程序版本,应用程序版本代码等的信息。
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());
}
}
}
}
}
但是在卸载应用程序时,您只能获得软件包名称,因为在卸载时,系统会删除所有其他信息。
- 4 回答
- 0 关注
- 797 浏览
添加回答
举报