Получаем информацию об устройстве

Здравствуйте. В этом небольшом уроке я покажу как узнать некоторую информацию об устройстве  IMEI или IP-адреса смартфона.

Получаем IMEI

В Manifest-файле прописываем разрешение:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

Код MainActivity:

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE); 
String imei = telephonyManager.getDeviceId();

Узнаем модель смартфона

String phoneModel = android.os.Build.MODEL;

Узнаем версию Android

String androidVersion = android.os.Build.VERSION.RELEASE;

Узнаем IP-адрес устройства

В Manifest-сфайле прописываем разрешения:

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Код MainActivity.Java

WifiManager wifiMan = (WifiManager) getSystemService(Context.WIFI_SERVICE); 
WifiInfo wifiInf = wifiMan.getConnectionInfo(); 
int ipAddress = wifiInf.getIpAddress();
String ip = String.format("%d.%d.%d.%d", (ipAddress & 0xff),(ipAddress » 8 & 0xff),(ipAddress » 16 & 0xff),(ipAddress » 24 & 0xff));

Узнаем имя оператора сотовой связи

В Manifest-файле прописываем разрешение:

<uses-permission android:name="android.permission.READ_PHONE_STATE" />

Код MainActivity:

TelephonyManager manager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
String operatorName = manager.getNetworkOperatorName();

Узнаем размер экрана

public double screenSize() {

   DisplayMetrics dm = new DisplayMetrics();
   getWindowManager().getDefaultDisplay().getMetrics(dm);
   double x = Math.pow(dm.widthPixels / dm.xdpi, 2);
   double y = Math.pow(dm.heightPixels / dm.ydpi, 2);
   double screenInches = Math.sqrt(x + y); Log.d("debug", "Screen inches : " + screenInches);

return truncate(screenInches, 1);
}

public static double truncate(double c, int n){
   int d = (int) Math.pow(10, n);
   double r = (Math.rint(c*d)/d);
   return r;
}

 

Узнаем емкость аккумулятора

public Double getBatteryCapacity(){

   Object powerProfile = null;
   Double batteryCapacity = 0.0;
   final String POWER_PROFILE_CLASS = "com.android.internal.os.PowerProfile";

   try{
      powerProfile = Class.forName(POWER_PROFILE_CLASS)
     .getConstructor(Context.class).newInstance(this);
   }catch (Exception e){
      e.printStackTrace();
   }

   try{
      batteryCapacity = (Double) Class.forName(POWER_PROFILE_CLASS)
      .getMethod("getAveragePower", java.lang.String.class)
      .invoke(powerProfile, "battery.capacity");
   }catch (Exception e) {
      e.printStackTrace();
   }

   return batteryCapacity;
}

 

Узнаем уровень заряда аккумулятора

public int getBatteryLevel(){

   IntentFilter ifilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
   Intent batteryStatus = context.registerReceiver(null, ifilter);
   int level = batteryStatus.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
   int scale = batteryStatus.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
   int batteryPct = (int) ((level/(float) scale)* 100.0f);

   return batteryPct;
}

 

Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *