您的位置:首页 > 其它

Robotium_获取当前客户端的版本信息

2013-12-12 13:56 309 查看
package com.aaa_test;

import android.app.Activity;

import com.jayway.android.robotium.solo.*;

import android.app.Activity;

import android.content.Context;

import android.content.ContextWrapper;

import android.content.pm.ApplicationInfo;

import android.content.pm.PackageInfo;

import android.content.pm.PackageManager;

import android.graphics.drawable.Drawable;

import android.util.Log;

import android.view.*;

import android.widget.*;

/***/

@SuppressWarnings("unchecked")

public class Test_Case_001 extends Test {

private static final String LAUNCHER_ACTIVITY_CLASSNAME = "com.aaa.activities.SplashActivity";

private static Class<Activity> launchActivityClass;

static {

try {

launchActivityClass = (Class<Activity>)Class.forName(LAUNCHER_ACTIVITY_CLASSNAME);

} catch (ClassNotFoundException e) {

throw new RuntimeException(e);

}

}

public Test_Case_001() {

super("com.aaa.bbb", launchActivityClass);

}

public void testRecorded()

{

assertTrue("Activity \"StartActivity\" is not started.", solo.waitForActivity("StartActivity", 30000));

solo.sleep(3000);

Activity act = solo.getCurrentActivity();

ApplicationInfo appInfo = act.getApplicationInfo();

System.out.println("-----------aaaa------"+appInfo);

Context context = act.getApplicationContext();

System.out.println("-----------bbbbb------"+context);

String archiveFilePath="/storage/sdcard0/AMdebug.apk";

PackageManager pm = act.getPackageManager();

PackageInfo info = pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES);

System.out.println("-----------cccc------"+info);

if(info!=null)

{

//获取并打印当前的版本信息

String version = info.versionName;

System.out.println("-----------dddddd------"+version);

}

}

}

获取版本信息与version code

public void testRecorded() {

//等待 Activity "StartActivity" 启动

assertTrue("Activity \"StartActivity\" is not started.", solo.waitForActivity("StartActivity", 30000));

solo.sleep(2000);

Activity act = solo.getCurrentActivity();

ApplicationInfo appInfo = act.getApplicationInfo();

int sdkVer = appInfo.targetSdkVersion;

System.out.println("--------aaa----"+sdkVer);

PackageManager pm = act.getPackageManager();

String appName = pm.getApplicationLabel(appInfo).toString();

System.out.println("--------bbbb----"+appName);

String path = act.getPackageResourcePath();

System.out.println("--------ccc----"+path);

PackageInfo info = pm.getPackageArchiveInfo(path, PackageManager.GET_ACTIVITIES);

System.out.println("--------ddddd----"+info);

if(info!=null)

{

String version = info.versionName;

int verCode = info.versionCode;

System.out.println("version is:"+version+"version code:"+verCode);

}

}

参考代码如下:

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

String archiveFilePath="sdcard/download/Law.apk";//安装包路径

PackageManager pm = getPackageManager();

PackageInfo info = pm.getPackageArchiveInfo(archiveFilePath, PackageManager.GET_ACTIVITIES);

if(info != null){

ApplicationInfo appInfo = info.applicationInfo;

String appName = pm.getApplicationLabel(appInfo).toString();

String packageName = appInfo.packageName; //得到安装包名称

String version=info.versionName; //得到版本信息

Toast.makeText(test4.this, "packageName:"+packageName+";version:"+version, Toast.LENGTH_LONG).show();

Drawable icon = pm.getApplicationIcon(appInfo);//得到图标信息

TextView tv = (TextView)findViewById(R.id.tv); //显示图标

tv.setBackgroundDrawable(icon);

public void apkInfo(String absPath,Context context) {

PackageManager pm = context.getPackageManager();

PackageInfo pkgInfo = pm.getPackageArchiveInfo(absPath,PackageManager.GET_ACTIVITIES);

if (pkgInfo != null) {

ApplicationInfo appInfo = pkgInfo.applicationInfo;

/* 必须加这两句,不然下面icon获取是default icon而不是应用包的icon */

appInfo.sourceDir = absPath;

appInfo.publicSourceDir = absPath;

String appName = pm.getApplicationLabel(appInfo).toString();// 得到应用名

String packageName = appInfo.packageName; // 得到包名

String version = pkgInfo.versionName; // 得到版本信息

/* icon1和icon2其实是一样的 */

Drawable icon1 = pm.getApplicationIcon(appInfo);// 得到图标信息

Drawable icon2 = appInfo.loadIcon(pm);

String pkgInfoStr = String.format("PackageName:%s, Vesion: %s, AppName: %s", packageName, version, appName);

Log.i("aaa", String.format("PkgInfo: %s", pkgInfoStr));

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: