One, command line:
Test code:
New Handler () { @Override publicvoid handlemessage (Message msg) { LOG.D ( "Getsnnumbers", "SN:" + msg.obj.toString ()); } ; New Thread (new getserialnonumbers (Mhandler)); Snthread.start ();
Class:
Private Static classGetserialnonumbersImplementsRunnable {Handler mhandler; FinalString serialnostr = "[Ro.boot.serialno]"; Getserialnonumbers (Handler Handler) { This. Mhandler =handler; } Public voidrun () {Try{Process P= Runtime.getruntime (). EXEC ("Getprop"); P.waitfor (); BufferedReader Stdinput=NewBufferedReader (NewInputStreamReader (P.getinputstream ())); String Temp= ""; while(temp = Stdinput.readline ())! =NULL) { if(Temp.contains (serialnostr)) {Temp.replaceall (" ", ""); intindex =Temp.indexof (SERIALNOSTR); Temp= temp.substring (index + 20); Temp= temp.substring (1, Temp.length ()-1); LOG.D ("Getserialnonumbers", temp); Message msg=NewMessage (); Msg.obj=temp; Mhandler.sendmessage (msg); Break; } } } Catch(IOException e) {e.printstacktrace (); } Catch(interruptedexception e) {e.printstacktrace (); } } }
Second, Reflection:
Test code:
string[] Propertys = { "Ro.boot.serialno", "Ro.serialno" }; for (String key:propertys) { // String v = android.os.SystemProperties.get (key); String v = getandroidossystemproperties (key); LOG.E ("", "get" + key + ":" + v); }
Method:
Staticstring Getandroidossystemproperties (String key) {Method Systemproperties_get=NULL; String ret; Try{systemproperties_get= Class.forName ("Android.os.SystemProperties"). GetMethod ("Get", String.class); if(ret = (String) Systemproperties_get.invoke (NULL, key))! =NULL) returnret; } Catch(Exception e) {e.printstacktrace (); return NULL; } return""; }
Android Get SN serial number