获取ip地址的时候,如果不注册权限的话,也不会报错,但是不会获取到ip地址(表示这个问题很蛋疼)
获取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 en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {NetworkInterface intf = en.nextElement();for (Enumeration 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();}}


更多相关文章

  1. android 关机闹钟
  2. android系统的优缺点
  3. 【Android测试工具】02. Android抓包解析全过程
  4. 了解与建设有中国特色的Android(安卓)M&N(Android6.0和7.0新特性
  5. 【移动开发】WIFI热点通信(一)
  6. Android——简介
  7. PackageManagerService初始化
  8. Android(安卓)FFmpeg移植总攻略——获取视频帧数(亲测可用)
  9. (转帖)Android重力感应Demo

随机推荐

  1. unity和Android交互(内容部分为转载)
  2. Android 开机自启和后台自启权限
  3. 【android】查看软件布局神器Hierarchy V
  4. H5调android 的方法修改UI无效
  5. 基于Android的推箱子小游戏 源码
  6. Android中手机文件储存路径
  7. ReactNative AndroidStudio中运行找不到R
  8. android的ndk修改app_platform的方法,亲测
  9. Android Retrofit实现上传头像(仿京东项
  10. Android(安卓)camera2使用