android 获取当前设备的ip地址 mac地址 设备号 手机号 运营商信息
2015-12-07 11:52
826 查看
获取ip地址的时候,如果不注册权限的话,也不会报错,但是不会获取到ip地址(表示这个问题很蛋疼)
获取mac地址和设备号的时候,需要注册权限.不然会报错
所以权限很重要.记得加权限,记得加权限,记得加权限
获取mac地址和设备号的时候,需要注册权限.不然会报错
所以权限很重要.记得加权限,记得加权限,记得加权限
/** * 2015年12月7日TODOimgod */ package com.bodao.aibang.utils; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; import android.content.Context; import android.net.wifi.WifiInfo; import android.net.wifi.WifiManager; import android.telephony.TelephonyManager; import android.util.Log; /** * @author imgod 2015年12月7日 */ public class PhoneUtils { /** * 获取手机的ip地址 * 注意添加权限android:name="android.permission.INTERNET" * @return 返回地址是本地地址 例如 192.168.1.100 */ public static String getLocalIpAddress() { 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() && !inetAddress.isLinkLocalAddress()) { return inetAddress.getHostAddress().toString(); } } } } catch (SocketException ex) { Log.e("WifiPreference IpAddress", ex.toString()); } return null; } /** * 获取本机mac 记得添加权限 android:name="android.permission.ACCESS_WIFI_STATE" * * @return 返回本机的mac地址 */ public static String getLocalMacAddress(Context context) { WifiManager wifi = (WifiManager) context.getApplicationContext() .getSystemService(Context.WIFI_SERVICE); WifiInfo info = wifi.getConnectionInfo(); return info.getMacAddress(); } /** * @param ctx * 上下文对象 记得添加权限android:name="android.permission.READ_PHONE_STATE" * @return 返回获取到的手机信息,返回的东西太多.可以分多个函数进行写 */ public static String getPhoneInfo(Context ctx) { TelephonyManager tm = (TelephonyManager) ctx.getApplicationContext() .getSystemService(Context.TELEPHONY_SERVICE); StringBuilder sb = new StringBuilder(); sb.append("\nDeviceID(IMEI)" + tm.getDeviceId()); sb.append("\nDeviceSoftwareVersion:" + tm.getDeviceSoftwareVersion()); sb.append("\ngetLine1Number:" + tm.getLine1Number()); sb.append("\nNetworkCountryIso:" + tm.getNetworkCountryIso()); sb.append("\nNetworkOperator:" + tm.getNetworkOperator()); sb.append("\nNetworkOperatorName:" + tm.getNetworkOperatorName()); sb.append("\nNetworkType:" + tm.getNetworkType()); sb.append("\nPhoneType:" + tm.getPhoneType()); sb.append("\nSimCountryIso:" + tm.getSimCountryIso()); sb.append("\nSimOperator:" + tm.getSimOperator()); sb.append("\nSimOperatorName:" + tm.getSimOperatorName()); sb.append("\nSimSerialNumber:" + tm.getSimSerialNumber()); sb.append("\ngetSimState:" + tm.getSimState()); sb.append("\nSubscriberId:" + tm.getSubscriberId()); sb.append("\nVoiceMailNumber:" + tm.getVoiceMailNumber()); return sb.toString(); } }
相关文章推荐
- Android 常用正则表达式
- Android 生命周期图解
- Android自定义照相机倒计时拍照
- 最流行的android组件大全
- iOS与android的操作与交互比较区别
- android(31)(activity的生命周期)
- android 解决广播接收延时问题:前台广播
- android关于handler的内存泄露
- Android EditText的一些小用法
- android开源项目收集
- Android系统模拟器使用说明
- android 文件权限
- 【转】Android异常:that was originally added here
- android canvas paint绘制相关图形
- Android学习笔记——动画(Animation)
- AndroidManifest.xml文件supports-screens详解
- android(30)(短信助手,intent和activity数据的回传startActivityForResult)
- Android实践项目汇报总结(下)
- Android获取音乐文件的信息
- 如何获取媒体库中所有音频文件信息,并在文件增删后及时更新媒体库