2011-11-11 5 views

答えて

0

私は、このコード(とあなたがあまりにもシリアル番号をプルするコードを取得)

public static String getDeviceSerialNumber(Context ctx) 
    { 
     String phoneSerial = null; 

     try 
     { 
      phoneSerial = ((TelephonyManager)ctx.getSystemService(Context.TELEPHONY_SERVICE)).getDeviceId(); 
     } 
     catch(Exception ex) 
     { 
      phoneSerial = null; 
     } 

     //If it's not a phone or for some reason we can't get serial/IMEI - get serial from 
     if (phoneSerial == null) 
     { 
      try 
      { 
       Class<?> c = Class.forName("android.os.SystemProperties"); 
       Method get = c.getMethod("get", String.class); 
       phoneSerial = (String) get.invoke(c, "ro.serialno"); 
      } catch (Exception ignored) {} 
     } 


     return phoneSerial; 
    } 

    public static boolean isRunningInEmulator(Context ctx) 
    { 
     return "000000000000000".equals(getDeviceSerialNumber(ctx)); 
    } 
+0

ありがとうございました。それはクールな方法です。 – Phoenix

0

他のオプションは、将来のデバイスは、この含め省略するかどうかを知ることはありませんので、あなたはまた、加速度センサーを確認することができ、私の意見では、より良いようだが、私は

String bpStr = Build.PRODUCT; 
if ("google_sdk".equals(bpStr)) 
    // IT'S RUNNING ON THE EMULATOR 
0

を使用。エミュレータは1つをサポートしません。現在、アンドロイドマーケットとGoogleネイティブアプリを搭載しているすべての携帯電話は加速度計を備えています。

onCreateでは、SensorEventListenerを実装した後で、

SensorManager manager = (SensorManager)getSystemService(Context.SENSOR_SERVICE); 
    if (manager.getSensorList(Sensor.TYPE_ACCELEROMETER).size() == 0) { 
      textView.setText("No accelerometer installed"); 
    } 
関連する問題