2015年11月12日
最近在看到Settings中的关于手机---状态信息,汇总了手机的各种信息,于是便整理了一份关于各种状态的查询,Settings的状态数据查询在Status.java 中。
//添加权限是必不可少的
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.SET_WALLPAPER"/>
<uses-permission android:name="android.permission.SET_WALLPAPER_HINTS"/>
//获取手机电池信息
BroadcastReceiver mBattery = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
int status = intent.getIntExtra("status", 0);//电池状态
int level = intent.getIntExtra("level", 0);//电池电量
}
}
};
registerReceiver(mBattery, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
//手机信号强度
TelephonyManager manager =(TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
PhoneStateListener mListener = new PhoneStateListener(){
@Override
public void onSignalStrengthsChanged(SignalStrength signalStrength) {
super.onSignalStrengthsChanged(signalStrength);
int strength = signalStrength.getGsmSignalStrength();//信号强度
}
};
manager.listen(mListener ,PhoneStateListener.LISTEN_SIGNAL_STRENGTHS);
}
//手机网络状态
ConnectivityManager connectMgr = (ConnectivityManager) JmTestActivity.this
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo info = connectMgr.getActiveNetworkInfo();
if(info==null||!info.isConnected()){
//无网络状态
return;
}
if(info.getType()==ConnectivityManager.TYPE_WIFI){
//手机网络类型:Wifi
}else{
//手机网络类型 :数据流量
}
if(info.isRoaming()){
//漫游状态
}else{
//非漫游状态
}
}
//手机号码、IMEI等
TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
String phoneId = tm.getLine1Number(); //本机号码
String imei = tm.getDeviceId(); //IMEI
String iccid =tm.getSimSerialNumber(); //ICCID
String imsi =tm.getSubscriberId(); //IMSI
String imei_sv = tm.getDeviceSoftwareVersion();//IMEI SV
GsmCellLocation location = (GsmCellLocation) tm.getCellLocation();
location.getCid();//基站id
//开机时间
long ut = SystemClock.elapsedRealtime() / 1000;
int s = (int)(ut % 60);//秒
int m = (int)((ut / 60) % 60);//分钟
int h = (int)((ut / 3600));//小时
//WLAN MAC地址
private void getWifiMac(){
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifi.getConnectionInfo();
String mac = "0";
if(info!=null){
mac = info.getMacAddress();
}
}
//获得Ip
private void getIp(){
//获取wifi服务
WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
//判断wifi是否开启
if (wifiManager.isWifiEnabled()) {
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
int ipAddress = wifiInfo.getIpAddress();
String ip = (ipAddress & 0xFF ) + "." +
((ipAddress >> 8 ) & 0xFF) + "." +
((ipAddress >> 16 ) & 0xFF) + "." +
( ipAddress >> 24 & 0xFF) ;
mEditor.putString(IP_ADDRESS, ip);
mEditor.commit();
Log.e(TAG, "Wifi ip:"+ip);
}else{
Log.e(TAG, "Wifi ip: not connect");
String ip="0";
try
{
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();)
{
NetworkInterface intf = en.nextElement();
for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();)
{
InetAddress inetAddress = enumIpAddr.nextElement();
if (!inetAddress.isLoopbackAddress())
{
ip = inetAddress.getHostAddress().toString();
}
}
}
}
catch (SocketException ex)
{
Log.e("WifiPreference IpAddress ERROR", ex.toString());
}
}
}
//获得蓝牙地址
BluetoothAdapter mAdapter = BluetoothAdapter.getDefaultAdapter();
mAdapter.getAddress()