2014-04-14 1 views
3

내 앱에서 SMS 읽기 기능을 추가하려고합니다. 사용자는 활동에 휴대 전화 번호를 입력 한 다음 한 번만 암호가 포함 된 SMS가 서버에서 사용자 휴대 전화로 전송됩니다. 내가 원하는 것은 사용자가 휴대 전화 번호를 입력하고 서버에서 들어오는 메시지를 기다리고있을 때 앱이 수신 메시지를 읽도록 유도하는 것입니다.확인 메일을 읽을 때까지 수신되는 메시지 읽기

는이 같은 몇 가지 질문이 여기 How to read the incoming message using service in background in android?

대답 보았다하지만 해결책은 전화로 오는 모든 SMS를 읽고있는 것 같다. 제 경우에는 읽기 기능이 사용자가 SMS를 기다리고 메시지가 수신되었을 때만 시작되도록하고 싶습니다.

+0

여기에 더 참조 클릭의 경우 OTP

public class IncomingSms extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { final Bundle bundle = intent.getExtras(); try { if (bundle != null) { final Object[] pdusObj = (Object[]) bundle.get("pdus"); for (int i = 0; i < pdusObj .length; i++) { SmsMessage currentMessage = SmsMessage.createFromPdu((byte[])pdusObj[i]); String phoneNumber = currentMessage.getDisplayOriginatingAddress(); String senderNum = phoneNumber ; String message = currentMessage .getDisplayMessageBody(); try { if (senderNum .equals("TA-DOCOMO")) { Otp Sms = new Otp(); Sms.recivedSms(message); } } catch(Exception e){} } } } catch (Exception e) { } } } 

를 확인합니다 : // www가 .gadgetsaint.com/android/read-sms-messages-android/#. WLrJHRJ97fY – ASP

답변

1

확인하는 방법 당신은 패키지 관리자를 사용하여/런타임에 비활성화 방송 수신기를 활성화 할 수 있습니다 수신기를 https://stackoverflow.com/a/7049747/774944

final String SOME_ACTION = "android.provider.Telephony.SMS_RECEIVED"; 
IntentFilter intentFilter = new IntentFilter(SOME_ACTION); 
SMSReceiver mReceiver = new SMSReceiver(); 
registerReceiver(mReceiver,intentFilter); 
0

를 등록하는 방법을 보여줍니다이 답변. 읽기 SMS에 대한

public void enableSmsModule() 
{ 
    PackageManager pm = getPackageManager(); 
    ComponentName componentName = new ComponentName(getApplicationContext(), SMSReceiver.class); 
    pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 
      PackageManager.DONT_KILL_APP); 
} 

public void disableSmsModule() 
{ 
    PackageManager pm = getPackageManager(); 
    ComponentName componentName = new ComponentName(getApplicationContext(), SMSReceiver.class); 
    pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
      PackageManager.DONT_KILL_APP); 
} 

코드 : How to read the incoming message using service in background in android?