add Utils getSn

This commit is contained in:
zhongchao
2021-01-28 17:42:52 +08:00
parent a7ba101fad
commit 10dc2cd500

View 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;
}
}