2011-12-25 23 views
6

¿Es posible detectar el número SIM usando TelephonyManager en Android en el arranque de arranque, mediante el servicio en el arranque ...androide SIM

TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
String ss=tm.getSimSerialNumber(); 

Respuesta

10

Es necesario registrar un receptor de radiodifusión para la realización de inicio de acción es decir androide. intent.action.BOOT_COMPLETED

en OnReceive de este receptor puede iniciar su servicio de obtener el número de SIM con líneas de código siguientes

TelephonyManager telephoneMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
    String phoneNumber = telephoneMgr.getLine1Number(); 

también es necesario tener permi Ssion para leer el número de teléfono como READ_PHONE_STATE en el archivo de manifiesto.

se puede iniciar el servicio de receptor de radiodifusión como -

public class BootListener extends BroadcastReceiver { 

@Override 
public void onReceive(Context context, Intent arg1) { 
    Intent intent = new Intent(context,Myservice.class); 
    context.startService(intent); 
} 

}

+0

Sí, lo he intentado ... pero no im capaz de iniciar el servicio ... Gracias por la respuesta frnds .. .. – subrussn90

+2

se puede iniciar el servicio de receptor de radiodifusión como- BootListener clase pública se extiende BroadcastReceiver { \t @ Override \t OnReceive (contexto contexto, arg1 Intención) public void { \t \t Intent intennt = new Intent (context, Myservice.class); \t \t context.startService (intent); } – Sushil

+0

Un paso que reenvío ... como dije, pude iniciar el servicio al inicio ... pero cuando obtengo el número simserial, el programa falla ... ¿Alguna idea para este problema? – subrussn90