获取设备ID
检查权限,
未弹出过权限选择界面:只有在允许的时候才会返回PackageManager.PERMISSION_GRANTED
已弹出过权限选择界面:允许和拒绝都会返回PackageManager.PERMISSION_GRANTED。只有询问状态才会返回
/**
* 检查是否具有 permission 权限
*
* @param context
* @param permission 要检测的权限
* @return 是否有权限
*/
public static boolean checkPermission(Context context, String permission) {
return ContextCompat.checkSelfPermission(context, permission)
== PackageManager.PERMISSION_GRANTED;
}
获取设备ID
/**
* @param context
* @return 设备ID
*/
public static String getDeviceId(Context context) {
TelephonyManager telephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
return telephonyManager.getDeviceId();
}
if (DeviceUtils.checkPermission(mContext , Manifest.permission.READ_PHONE_STATE)) {
String id = DeviceUtils.getDeviceId(mContext);
Toast.makeText(mContext, "设备ID:" + id, Toast.LENGTH_SHORT).show();
} else {
ActivityCompat.requestPermissions(mContext, new String[]{Manifest.permission.READ_PHONE_STATE}, 100);
}
Activity中重写请求权限返回
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == 100) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Toast.makeText(mContext, "权限申请成功", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(mContext, "权限申请失败", Toast.LENGTH_SHORT).show();
}
}
}