add Utils getSn
This commit is contained in:
87
app/src/main/java/com/mogo/cloud/util/Utils.java
Normal file
87
app/src/main/java/com/mogo/cloud/util/Utils.java
Normal file
@@ -0,0 +1,87 @@
|
||||
package com.mogo.cloud.util;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.Context;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.telephony.CellLocation;
|
||||
import android.telephony.TelephonyManager;
|
||||
import android.telephony.cdma.CdmaCellLocation;
|
||||
import android.telephony.gsm.GsmCellLocation;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
/**
|
||||
* Created by congtaowang on 2018/3/29.
|
||||
*/
|
||||
|
||||
public class Utils {
|
||||
|
||||
public static String getCellId( Context context ) {
|
||||
TelephonyManager tm = ( TelephonyManager ) context.getSystemService( Context.TELEPHONY_SERVICE );
|
||||
if ( tm == null ) {
|
||||
return "";
|
||||
}
|
||||
|
||||
PackageManager pm = context.getPackageManager();
|
||||
boolean accessCoarseLocationPermission = ( PackageManager.PERMISSION_GRANTED ==
|
||||
pm.checkPermission( Manifest.permission.ACCESS_COARSE_LOCATION, context.getPackageName() ) );
|
||||
boolean accessFineLocationPermission = ( PackageManager.PERMISSION_GRANTED ==
|
||||
pm.checkPermission( Manifest.permission.ACCESS_FINE_LOCATION, context.getPackageName() ) );
|
||||
if ( !accessCoarseLocationPermission || !accessFineLocationPermission )
|
||||
return "noPermission";
|
||||
|
||||
CellLocation location = null;
|
||||
try {
|
||||
location = tm.getCellLocation();
|
||||
} catch ( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if ( location != null ) {
|
||||
// Gsm网络 , 联通移动的网络属于这一套
|
||||
if ( location instanceof GsmCellLocation ) {
|
||||
GsmCellLocation gsmLoc = ( GsmCellLocation ) location;
|
||||
int cellid = gsmLoc.getCid();
|
||||
return String.valueOf( cellid );
|
||||
// Cdma网络 , 电信网络属于这一种
|
||||
} else if ( location instanceof CdmaCellLocation ) {
|
||||
CdmaCellLocation cdmaLoc = ( CdmaCellLocation ) location;
|
||||
return String.valueOf( cdmaLoc.getBaseStationId() );
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
public static final String GET = "get";
|
||||
public static final String GSM_SERIAL = "gsm.serial";
|
||||
public static final String BYD_SERIAL = "ro.serialno";
|
||||
public static final String FOTA_VERSION = "ro.fota.version";
|
||||
public static final String PROPERTIES = "android.os.SystemProperties";
|
||||
|
||||
public static String getSn() {
|
||||
return getSystemProperties( GSM_SERIAL );
|
||||
}
|
||||
|
||||
public static String getFotaVersion() {
|
||||
return getSystemProperties( FOTA_VERSION );
|
||||
}
|
||||
|
||||
public static String getSystemProperties( String name ) {
|
||||
String value = "";
|
||||
try {
|
||||
Class< ? > c = Class.forName( PROPERTIES );
|
||||
Method get = c.getMethod( GET, String.class );
|
||||
value = ( String ) get.invoke( c, name );
|
||||
} catch ( ClassNotFoundException var3 ) {
|
||||
var3.printStackTrace();
|
||||
} catch ( NoSuchMethodException var4 ) {
|
||||
var4.printStackTrace();
|
||||
} catch ( InvocationTargetException var5 ) {
|
||||
var5.printStackTrace();
|
||||
} catch ( IllegalAccessException var6 ) {
|
||||
var6.printStackTrace();
|
||||
}
|
||||
return value;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user