您的位置:首页 > 其它

获取系统信息的功能类

2013-10-15 10:22 309 查看
记录一个常用的系统功能类

package com.tencent.common;

import android.app.ActivityManager;
import android.app.ActivityManager.RunningServiceInfo;
import android.app.ActivityManager.RunningTaskInfo;
import android.app.Notification;
import android.app.NotificationManager;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.os.Build.VERSION;
import android.os.Vibrator;
import android.telephony.TelephonyManager;
import android.view.Display;
import android.view.WindowManager;
import com.tencent.data.CLoginManager;
import com.tencent.data.CLoginManager.CUserInfo;
import com.tencent.debug.QLog;
import com.tencent.foundation.connection.TPNetworkMonitor;
import com.tencent.portfolio.CSplashActivity;
import com.tencent.portfolio.CStockTransforActivity;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.Iterator;
import java.util.List;
import java.util.Random;

public class CConfiguration
{
private static final String CHANNEL_ID = "18";
public static boolean QQStockAcitivityIsInForeground = false;
public static final boolean __env_use_release_server_urls = true;
public static Context applicationContext = null;
public static boolean isDebugVersion = false;
public static final String kProjectEncoding = "utf-8";
private static CSize screenSize = new CSize();
private static TPNetworkMonitor sharedNetworkMonitor;
private static SharedPreferences sharedPreferences = null;

static
{
sharedNetworkMonitor = null;
}

public static String combianMIGReport(String paramString)
{
StringBuffer localStringBuffer;
if (paramString.contains("?"))
if (paramString.endsWith("&"))
localStringBuffer = new StringBuffer(paramString);
try
{
localStringBuffer.append("_appName=").append("android").append("&");
localStringBuffer.append("_dev=").append(URLEncoder.encode(getDeviceName(), "UTF-8")).append("&");
localStringBuffer.append("_devId=").append(getIMEI()).append("&");
localStringBuffer.append("_appver=").append(getAppVersion()).append("&");
localStringBuffer.append("_ifChId=").append(getChannelID()).append("&");
localStringBuffer.append("_osVer=").append(URLEncoder.encode(getOSVersion(), "UTF-8")).append("&");
CLoginManager.CUserInfo localCUserInfo = CLoginManager.shared().getUserInfo();
if (localCUserInfo != null);
for (String str1 = localCUserInfo.getUin(); ; str1 = "10000")
{
localStringBuffer.append("_uin=").append(str1);
String str2 = localStringBuffer.toString();
return str2;
if (paramString.endsWith("?"))
{
localStringBuffer = new StringBuffer(paramString);
break;
}
localStringBuffer = new StringBuffer(paramString + "&");
break;
if ((paramString.endsWith("/")) || (paramString.endsWith("&")))
{
localStringBuffer = new StringBuffer(paramString.substring(0, -1 + paramString.length()) + "?");
break;
}
localStringBuffer = new StringBuffer(paramString + "?");
break;
}
}
catch (UnsupportedEncodingException localUnsupportedEncodingException)
{
}
return paramString;
}

public static String getAppName()
{
return "finance_portfolio";
}

public static String getAppVersion()
{
String str = applicationContext.getString(2131230810);
if (str == null)
str = "2.7.1";
return str;
}

public static String getBrand()
{
return Build.BRAND;
}

public static String getCarrierName()
{
TelephonyManager localTelephonyManager = (TelephonyManager)applicationContext.getSystemService("phone");
if (localTelephonyManager == null)
return "";
return localTelephonyManager.getSimOperatorName();
}

public static String getChannelID()
{
return "18";
}

public static String getDeviceName()
{
return Build.DEVICE;
}

public static String getIMEI()
{
String str = ((TelephonyManager)applicationContext.getSystemService("phone")).getDeviceId();
if (str != null)
return str;
return "";
}

public static Bitmap getImage(String paramString, int paramInt)
{
return BitmapFactory.decodeFile(CPath.getFullPath(paramString, paramInt));
}

public static int getNetworkType()
{
return sharedNetworkMonitor().getNetworkType();
}

public static String getNetworkTypeDesc()
{
return sharedNetworkMonitor().getNetworkTypeDesc();
}

public static String getOSVersion()
{
return Build.VERSION.RELEASE;
}

public static int getOSVersionInt()
{
return Build.VERSION.SDK_INT;
}

public static CSize getScreenSize()
{
Display localDisplay = ((WindowManager)applicationContext.getSystemService("window")).getDefaultDisplay();
screenSize.width = localDisplay.getWidth();
screenSize.height = localDisplay.getHeight();
return screenSize;
}

public static String getScreenSizeStr()
{
CSize localCSize = getScreenSize();
Object[] arrayOfObject = new Object[2];
arrayOfObject[0] = Integer.valueOf((int)localCSize.width);
arrayOfObject[1] = Integer.valueOf((int)localCSize.height);
return String.format("%d_%d", arrayOfObject);
}

public static SharedPreferences getSharedPreferences()
{
if (sharedPreferences == null)
sharedPreferences = applicationContext.getSharedPreferences("qqstock", 0);
return sharedPreferences;
}

public static String getUniqueID()
{
boolean bool = true;
String str1 = CPath.getFullPath("unique_id.value", 8577915);
String str2 = (String)CFileHandle.readObjectFromPath(str1);
TelephonyManager localTelephonyManager;
if (str2 == null)
{
WifiManager localWifiManager = (WifiManager)applicationContext.getSystemService("wifi");
if (localWifiManager != null)
{
WifiInfo localWifiInfo = localWifiManager.getConnectionInfo();
if (localWifiInfo != null)
str2 = localWifiInfo.getMacAddress();
}
if (str2 == null)
{
localTelephonyManager = (TelephonyManager)applicationContext.getSystemService("phone");
if (localTelephonyManager != null)
break label138;
str2 = null;
}
if (str2 == null)
{
Object[] arrayOfObject = new Object[bool];
arrayOfObject[0] = Integer.valueOf(CRandom.getRandomNum(10000));
str2 = String.format("android_device_id_%d", arrayOfObject);
}
if (str2 == null)
break label147;
}
while (true)
{
QLog.Assert(bool, "逻辑错误");
str2 = CMD5Util.md5String(str2);
CFileHandle.writeObjectToPath(str2, str1);
return str2;
label138: str2 = localTelephonyManager.getDeviceId();
break;
label147: bool = false;
}
}

public static String getUserAgent()
{
Object[] arrayOfObject = new Object[2];
arrayOfObject[0] = getAppVersion();
arrayOfObject[1] = getOSVersion();
return String.format("qqstock/%s android/%s", arrayOfObject);
}

public static void gotoWIFISetting()
{
sharedNetworkMonitor().gotoWIFISetting();
}

public static void installApp(Context paramContext, String paramString)
{
Intent localIntent = new Intent();
localIntent.setDataAndType(Uri.fromFile(new File(paramString)), "application/vnd.android.package-archive");
paramContext.startActivity(localIntent);
}

public static boolean isActivityInScreenFront(String paramString)
{
ActivityManager localActivityManager = (ActivityManager)applicationContext.getSystemService("activity");
if (localActivityManager.getRunningTasks(10).size() <= 0)
return false;
boolean bool1 = ((ActivityManager.RunningTaskInfo)localActivityManager.getRunningTasks(1).get(0)).topActivity.getClassName().equals(paramString);
boolean bool2 = false;
if (bool1)
bool2 = true;
return bool2;
}

public static boolean isAppInstalled(Context paramContext, String paramString1, String paramString2)
{
List localList = paramContext.getPackageManager().getInstalledPackages(0);
if (localList != null);
for (int i = 0; ; i++)
{
if (i < localList.size())
{
String str1 = ((PackageInfo)localList.get(i)).packageName;
String str2 = ((PackageInfo)localList.get(i)).versionName;
if ((str1 == null) || (!str1.equals(paramString1)))
continue;
QLog.d("Package[" + paramString1 + "]:is installed.");
if ((paramString2 != null) && (!paramString2.equals("")) && (!paramString2.equalsIgnoreCase(str2)))
QLog.d("Package versionName [" + str2 + "]");
}
else
{
return false;
}
return true;
}
}

public static boolean isServiceRunning(String paramString)
{
List localList = ((ActivityManager)applicationContext.getSystemService("activity")).getRunningServices(50);
if (localList.size() <= 0)
return false;
for (int i = 0; ; i++)
{
int j = localList.size();
boolean bool = false;
if (i < j)
{
if (((ActivityManager.RunningServiceInfo)localList.get(i)).service.getClassName().equals(paramString) == true)
bool = true;
}
else
return bool;
}
}

public static boolean isTaskInScreenFront(String paramString)
{
ActivityManager localActivityManager = (ActivityManager)applicationContext.getSystemService("activity");
ComponentName localComponentName = ((ActivityManager.RunningTaskInfo)localActivityManager.getRunningTasks(1).get(0)).topActivity;
if ((((ActivityManager.RunningTaskInfo)localActivityManager.getRunningTasks(1).get(0)).numActivities == 1) && (((ActivityManager.RunningTaskInfo)localActivityManager.getRunningTasks(1).get(0)).topActivity.getClassName().equals(CStockTransforActivity.class.getName())))
return false;
return localComponentName.getPackageName().equalsIgnoreCase(paramString);
}

public static boolean isTaskRunning(String paramString)
{
boolean bool = false;
ActivityManager localActivityManager = (ActivityManager)applicationContext.getSystemService("activity");
List localList = localActivityManager.getRunningTasks(10);
if (localList.size() <= 0)
return false;
if ((((ActivityManager.RunningTaskInfo)localActivityManager.getRunningTasks(1).get(0)).numActivities == 2) && (((ActivityManager.RunningTaskInfo)localActivityManager.getRunningTasks(1).get(0)).topActivity.getClassName().equals(CStockTransforActivity.class.getName())))
return false;
for (int i = 0; i < localList.size(); i++)
if (((ActivityManager.RunningTaskInfo)localList.get(i)).baseActivity.getPackageName().equalsIgnoreCase(paramString))
bool = true;
return bool;
}

public static int playDefaultBell()
{
NotificationManager localNotificationManager = (NotificationManager)applicationContext.getSystemService("notification");
Notification localNotification = new Notification();
localNotification.defaults = 1;
int i = new Random(System.currentTimeMillis()).nextInt(2147483647);
localNotificationManager.notify(i, localNotification);
return i;
}

private static TPNetworkMonitor sharedNetworkMonitor()
{
if (sharedNetworkMonitor == null)
sharedNetworkMonitor = new TPNetworkMonitor(applicationContext);
return sharedNetworkMonitor;
}

public static void shortVibrate()
{
((Vibrator)applicationContext.getSystemService("vibrator")).vibrate(new long[] { 20L, 800L, 300L, 300L }, -1);
}

public static void startApkActivity(Context paramContext, String paramString)
{
startApkActivity(paramContext, paramString, false);
}

public static void startApkActivity(Context paramContext, String paramString, boolean paramBoolean)
{
PackageManager localPackageManager = paramContext.getPackageManager();
try
{
PackageInfo localPackageInfo = localPackageManager.getPackageInfo(paramString, 0);
Intent localIntent = new Intent("android.intent.action.MAIN", null);
localIntent.addCategory("android.intent.category.LAUNCHER");
if (paramBoolean)
{
localIntent.setFlags(67108864);
localIntent.setFlags(268435456);
}
while (true)
{
localIntent.setPackage(localPackageInfo.packageName);
ResolveInfo localResolveInfo = (ResolveInfo)localPackageManager.queryIntentActivities(localIntent, 0).iterator().next();
if (localResolveInfo == null)
break;
localIntent.setComponent(new ComponentName(paramString, localResolveInfo.activityInfo.name));
paramContext.startActivity(localIntent);
return;
localIntent.setFlags(270532608);
}
}
catch (PackageManager.NameNotFoundException localNameNotFoundException)
{
QLog.e("NameNotFoundException", localNameNotFoundException);
}
}

public static void startSelf(Context paramContext)
{
Intent localIntent = new Intent(paramContext, CSplashActivity.class);
localIntent.setAction("android.intent.action.MAIN");
localIntent.addCategory("android.intent.category.LAUNCHER");
localIntent.setFlags(270532608);
paramContext.startActivity(localIntent);
}

public static class CSize
{
public float height = 0.0F;
public float width = 0.0F;

public CSize()
{
}

public CSize(float paramFloat1, float paramFloat2)
{
this.width = paramFloat1;
this.height = paramFloat2;
}
}
}


[align=left]更多的移动互联网的发展趋势、app开发、移动互联网应用相关的资料请到互联网的一点事:www.yidin.net 留言[/align]
[align=left]android QQ群:222392467[/align]
[align=left]资料:[/align]

www.2naa.com
[align=left]http://www.yidin.net/?p=8280[/align]
[align=left]http://www.yidin.net/?p=9725[/align] http://my.oschina.net/yidinshi/blog/133729
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: