android系统获取系统相关信息(如Android设备的唯一ID等)(源码)
2014-08-31 08:44
621 查看
package android.seek.service.appdevice.util;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.net.NetworkInfo.State;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Build;
import android.provider.Settings.Secure;
import android.telephony.TelephonyManager;
import android.text.TextUtils;
import java.lang.reflect.Method;
import java.util.Random;
public class PhoneInfo
{
public static final String IMEI = "imei";
public static final String IMSI = "imsi";
public static final String MACADDRESS = "mac_address";
private static String a()
{
StringBuffer localStringBuffer1 = new StringBuffer();
long l1 = System.currentTimeMillis();
String str = Long.toString(l1);
localStringBuffer1.append(str.substring(-5 + str.length()));
StringBuffer localStringBuffer2 = new StringBuffer();
localStringBuffer2.append(Build.MODEL.replaceAll(" ", ""));
while (localStringBuffer2.length() < 6)
localStringBuffer2.append('0');
localStringBuffer1.append(localStringBuffer2.substring(0, 6));
Random localRandom = new Random(l1);
for (long l2 = 0L; l2 < 4096L; l2 = localRandom.nextLong());
localStringBuffer1.append(Long.toHexString(l2).substring(0, 4));
return localStringBuffer1.toString();
}
public static boolean checkNetWork(Context paramContext)
{
ConnectivityManager localConnectivityManager = (ConnectivityManager)paramContext.getSystemService("connectivity");
if (localConnectivityManager == null);
NetworkInfo[] arrayOfNetworkInfo;
do
{
return false;
arrayOfNetworkInfo = localConnectivityManager.getAllNetworkInfo();
}
while (arrayOfNetworkInfo == null);
int i = arrayOfNetworkInfo.length;
int j = 0;
if (j < i)
{
NetworkInfo localNetworkInfo = arrayOfNetworkInfo[j];
if (localNetworkInfo != null)
{
NetworkInfo.State localState = localNetworkInfo.getState();
if ((localState == null) || ((localState != NetworkInfo.State.CONNECTED) && (localState != NetworkInfo.State.CONNECTING)));
}
}
for (boolean bool = true; ; bool = false)
{
return bool;
j++;
break;
}
}
public static String getAndroidId(Context paramContext)
{
return Settings.Secure.getString(paramContext.getContentResolver(), "android_id");
}
public static String getImei(Context paramContext)
{
SharedPreferences localSharedPreferences = paramContext.getSharedPreferences("imei", 0);
String str1 = localSharedPreferences.getString("imei", null);
if ((str1 == null) || (str1.length() == 0))
{
String str2 = ((TelephonyManager)paramContext.getSystemService("phone")).getDeviceId();
if ((str2 == null) || (str2.length() == 0))
str2 = a();
for (str1 = str2.replaceAll(" ", "").trim(); str1.length() < 15; str1 = "0" + str1);
SharedPreferences.Editor localEditor = localSharedPreferences.edit();
localEditor.putString("imei", str1);
localEditor.commit();
}
return str1.trim();
}
public static String getImsi(Context paramContext)
{
SharedPreferences localSharedPreferences = paramContext.getSharedPreferences("imei", 0);
String str1 = localSharedPreferences.getString("imsi", null);
if ((str1 == null) || (str1.length() == 0))
{
String str2 = ((TelephonyManager)paramContext.getSystemService("phone")).getSubscriberId();
if ((str2 == null) || (str2.length() == 0))
str2 = a();
for (str1 = str2.replaceAll(" ", "").trim(); str1.length() < 15; str1 = "0" + str1);
SharedPreferences.Editor localEditor = localSharedPreferences.edit();
localEditor.putString("imsi", str1);
localEditor.commit();
}
return str1;
}
public static String getLocalMacAddress(Context paramContext)
{
String str = ((WifiManager)paramContext.getSystemService("wifi")).getConnectionInfo().getMacAddress();
if ((str == null) || ("".equals(str)))
return paramContext.getSharedPreferences("mac_address", 0).getString("mac_address", "");
SharedPreferences.Editor localEditor = paramContext.getSharedPreferences("mac_address", 0).edit();
localEditor.putString("mac_address", str);
localEditor.commit();
return str;
}
public static String getOriginalImei(Context paramContext)
{
String str = ((TelephonyManager)paramContext.getSystemService("phone")).getDeviceId();
if (str != null)
str = str.trim();
return str;
}
public static String getOriginalImsi(Context paramContext)
{
String str = ((TelephonyManager)paramContext.getSystemService("phone")).getSubscriberId();
if (str != null)
str = str.trim();
return str;
}
public static String getSerialNum()
{
try
{
Class localClass = Class.forName("android.os.SystemProperties");
String str = (String)localClass.getMethod("get", new Class[] { String.class, String.class }).invoke(localClass, new Object[] { "ro.serialno", "unknown" });
return str;
}
catch (Exception localException)
{
}
return null;
}
public static boolean hasWap(Context paramContext)
{
for (NetworkInfo localNetworkInfo : ((ConnectivityManager)paramContext.getSystemService("connectivity")).getAllNetworkInfo())
if (localNetworkInfo != null)
{
NetworkInfo.State localState = localNetworkInfo.getState();
if ((NetworkInfo.State.CONNECTED == localState) && (localNetworkInfo.getType() == 0))
{
String str = localNetworkInfo.getExtraInfo();
if (TextUtils.isEmpty(str))
return false;
return str.toUpperCase().indexOf("WAP") != -1;
}
}
return false;
}
}
相关文章推荐
- android系统获取系统相关信息(如Android设备的唯一ID等)原理
- 根据mac地址+deviceid获取设备唯一编码 获取手机及SIM卡相关信息
- Android系统信息获取 之十四:获取WIFI热点相关信息
- Android下使用TelephonyManager类获取设备电话相关信息
- Android获取设备唯一ID
- Android获取设备ID、型号及其它信息
- Android能够获取到唯一的设备ID吗?
- Android 获取唯一设备号和机型信息
- 获取android设备id的相关方法
- android 获取设备Id等信息
- Android 能够获取到唯一的设备 ID 吗?
- Android获取设备、系统信息系列(1--13)
- 获取Android各类系统相关信息的接口实现代码
- Android下获取设备唯一标识(UDID, DeviceID...)
- Android能够获取到唯一的设备ID吗?
- android---获取设备相关信息
- Android 获取唯一设备号和机型信息
- Android系统信息获取 之十:移动网络相关信息获取
- ANDROID获取设备ID、型号及其它信息
- android获取设备相关信息