Поскольку команда iphonesubinfo 1
не работает на многих устройствах, вот небольшой обходной путь, который должен работать согласованно на большинстве версий Android, а также на устройствах с root и без рута:
Если у вас уже есть собственное приложение,Вы можете установить на устройстве, с которого вы хотите знать IMEI, добавить BroadcastReceiver
в ваше приложение:
public class GetImeiReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String imei = ((TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId();
setResultData(imei);
}
}
и в AndroidManifest.xml
:
<receiver android:name=".GetImeiReceiver">
<intent-filter>
<action android:name="com.myapp.GET_IMEI"/>
</intent-filter>
</receiver>
ВызовВаш приемник через ADB:
adb shell am broadcast -a com.myapp.GET_IMEI
... и вывод будет выглядеть примерно так:
Broadcast completed: result=0, data="000000000000000"
... где data
- это IMEI устройства.
Если у вас нет существующего приложения для интеграции этого решения, я создал это простое приложение, содержащее необходимый код: https://github.com/saschoar/android-imei-getter (также включает APK и полные инструкции).