从Android清单获取包字符串
这应该很简单,但我找不到任何关于这个的信息 我只想读取android清单中的包值从Android清单获取包字符串,android,android-manifest,Android,Android Manifest,这应该很简单,但我找不到任何关于这个的信息 我只想读取android清单中的包值 <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="THIS" 来自您的“主要”活动课程: String package = this.getClass().getPackage().getName(); 在活动中,只需调用getPackageName()。如果碰巧需要清单中的其他数据,可以使用Pa
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="THIS"
来自您的“主要”活动
课程:
String package = this.getClass().getPackage().getName();
在活动中,只需调用getPackageName()。如果碰巧需要清单中的其他数据,可以使用PackageInfo类:
将TextView设置为应用程序版本的示例:
try {
PackageManager pm = getPackageManager();
PackageInfo packageInfo = pm.getPackageInfo(this.getPackageName(), 0);
TextView version = (TextView) findViewById(R.id.version);
version.setText(packageInfo.versionName);
} catch (NameNotFoundException e) {}
值得注意的是,只有当您的主活动位于与清单包同名的包(而不是,例如,子包)中时,这才有效。类的包必须与清单中定义的包不匹配,因此这是不正确的,尽管在大多数情况下,这将起作用。这将清除问题。这可能不完全正确,因为packageInfo.versionName确实返回在gradle文件中定义的applicationId,而不是清单中的package属性。在大多数情况下,这是相同的,它可以正常工作,但当您使用buildFlavors更改应用程序ID时,它将不再工作。除了通过R
-类访问包attribtue之外,我也找不到任何解决方案。也就是说,package属性只影响R
-类的包名,而不影响applicationId,也不影响普通类包