Android开发中我们常常需要知道,当前应用的版本信息。可以进行自动升级判断。扩展自定义数据meta-data, 这些数据都在AndroidManifest.xml .我们如何获取这些信息呢?

下来示例如何读取这些数据。

1 版本信息、应用名称

2 Appliction 的Meta-data

3 Activity中的Meta-data

AndroidManifest.xml中的定义如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="hpc.cai.test01"
android:versionCode="1"
android:versionName="1.0" >

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<meta-data
android:name="tel"
android:value="cdma-13366350377" >
</meta-data>
<meta-data
android:name="channel"
android:value="eben" />


<activity
android:name="hpc.cai.test.Test1Activity"
android:label="@string/app_name" >
<meta-data
android:name="name"
android:value="自强不息" >
</meta-data>
<meta-data
android:name="city"
android:value="北京" />


<intent-filter>
<action android:name="android.intent.action.MAIN" />


<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

java 代码:

/**
* activity MetaData读取
*/
private void testActivityMetaData() {
ActivityInfo info;
try {
info = getPackageManager().getActivityInfo(getComponentName(),
PackageManager.GET_META_DATA);


String msg = info.metaData.getString("name");
System.out.println("name:" + msg);


msg = info.metaData.getString("city");
System.out.println("city:" + msg);


} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* appliction MetaData读取
*/
private void testApplicationMetaData() {
ApplicationInfo info;
try {
info = this.getPackageManager().getApplicationInfo(
getPackageName(), PackageManager.GET_META_DATA);


String msg = info.metaData.getString("tel");
System.out.println("tel:" + msg);


msg = info.metaData.getString("channel");
System.out.println("channel:" + msg);


} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 测试版本信息
*/
private void getVersion(){
PackageInfo pkg;
try {
pkg = getPackageManager().getPackageInfo(getApplication().getPackageName(), 0);
String appName = pkg.applicationInfo.loadLabel(getPackageManager()).toString();
String versionName = pkg.versionName;
System.out.println("appName:" + appName);
System.out.println("versionName:" + versionName);
} catch (NameNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

输出如下:

16:37:54.442: I/System.out(10213): appName:Test1
16:37:54.442: I/System.out(10213): versionName:1.0
16:37:54.442: I/System.out(10213): tel:cdma-13366350377
16:37:54.442: I/System.out(10213): channel:eben
16:37:54.452: I/System.out(10213): name:自强不息
16:37:54.452: I/System.out(10213): city:北京


更多相关文章

  1. [SL4A]获取IMEI信息
  2. Android(安卓)Activity堆栈信息
  3. Android导入导出txt通讯录工具(源码共享)
  4. 使用PreferenceActivity设置应用程序参数
  5. Android(安卓)SharedPreferences存储的正确写法
  6. Android读取联系人信息(姓名,电话,地址,邮箱,生日等)
  7. 自定义Logcat,完全控制打印信息
  8. Android(安卓)error: "/usr/bin/ld: cannot find -lz"
  9. Android(安卓)Retrofit2&OkHttp3添加统一的请求头Header

随机推荐

  1. Android文本输入框EditView不可输入不可
  2. 技术博客
  3. Android(安卓)Studio中如何查看获取MD5和
  4. 基于unity3d游戏的android版本逆向初探
  5. Android初级教程八——TextView编程实现
  6. Litepal的简单使用
  7. Android(安卓)锁屏状态下拉起某个页面
  8. Android(安卓)多线程之HandlerThread 完
  9. Andriod软键盘出现把原来的布局给顶上去
  10. WebView Android(安卓)调用js且需要获取