TelephonyManager mTm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
获取手机的设备号为null
出现的原因:用户下载360卫士打开软件管理的权限管理关闭了“获取设备信息”的选项
解决方案:
//获取手机设备信息的权限
TelephonyManager mTm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
//判断获取到的设备号是否为空
StringUtil.isNullOrEmptyCaseNullString(mTm.getDeviceId())
/**
* 判断对象或对象数组中每一个对象是否为空: 对象为null,对象为"null",字符序列长度为0,集合类、Map为empty
*
* @param obj
* @return
*/
public static boolean isNullOrEmptyCaseNullString(Object obj) {
if (obj == null)
return true;
if (obj.equals("null"))
return true;
if (obj instanceof CharSequence)
return ((CharSequence) obj).length() == 0;
if (obj instanceof Collection)
return ((Collection) obj).isEmpty();
if (obj instanceof Map)
return ((Map) obj).isEmpty();
if (obj instanceof Object[]) {
Object[] object = (Object[]) obj;
boolean empty = true;
for (int i = 0; i < object.length; i++)
if (!isNullOrEmpty(object[i])) {
empty = false;
break;
}
return empty;
}
return false;
}