2011-12-25 2 views
6

Можно ли обнаружить SIM номер с помощью TelephonyManager в андроиде при старте загрузки, используя службу при загрузке ...Android SIM

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

ответ

10

Вы должны зарегистрировать вещательный приемник для завершения загрузки действий, т.е. андроида. intent.action.BOOT_COMPLETED

в OnReceive данного ресивера вы можете начать свой сервис получить SIM номер с ниже строки кода

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

необходимо также иметь перми ssion для чтения номера телефона как READ_PHONE_STATE в файле манифеста.

вы можете запустить службу от радиовещательного приемника, как -

public class BootListener extends BroadcastReceiver { 

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

}

+0

Да, я пробовал ... но им не удалось запустить службу ... спасибо за ответ frnds .. .. – subrussn90

+2

вы можете запустить службу от радиовещательного приемника как- общественного класса BootListener расширяет BroadcastReceiver { \t @Override \t общественного недействительного OnReceive (контекст контекста, Намерение arg1) { \t \t Цель намерения = новое намерение (контекст, Myservice.class); \t \t context.startУслуги (намерения); \t } – Sushil

+0

Один шаг, который я переправил ... как сказал, я смог запустить serice при запуске ... но когда я получу симсериал, программа выйдет из строя ... Любая идея для этой проблемы? – subrussn90

Смежные вопросы