2011-12-22 3 views
2

운영자는 전화 사용자에게 서비스 정보 메시지를 보낼 수 있습니다. 알림 창으로 나타납니다. 예를 들어 나의 통신 수는 매 통화마다 지출 된 돈과 왼쪽 돈을 보냅니다. 이를 위해이 서비스 정보를 사용합니다.Android에서 서비스 정보를 처리하는 방법

메시지를 처리 ​​할 수있는 방법이 있습니까?

답변

0

SMS 인 경우 (주변의 운영자에게 표시되는 경우).

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="org.example"> 
    <uses-permission id="android.permission.RECEIVE_SMS" /> 
    <application> 
     <receiver class="SMSApp"> 
      <intent-filter> 
       <action android:value="android.provider.Telephony.SMS_RECEIVED" /> 
      </intent-filter> 
     </receiver> 
    </application> 
</manifest> 

을 그냥 android.content.IntentReceiver를 확장하고 다음과 같이 onIntentReceived 메소드를 구현 :

간단한은 매니페스트에 인 텐트 필터를 추가

public void onReceiveIntent(Context context, Intent intent) { 
if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) { 
      Bundle bundle = intent.getExtras(); 
      if (bundle != null) { 
       SmsMessage[] messages = Telephony.Sms.Intents.getMessagesFromIntent(intent); 
       for (int i = 0; i &lt; messages.length; i++) { 
        SmsMessage message = messages[i]; 
        System.out.println("Received SMS from: "+message.getDisplayOriginatingAddress());  
        System.out.println(message.getDisplayMessageBody()); 
       } 
      } 
} 
+0

너보다. 그러나 그들은 SMS가 아닙니다. 서비스 통지입니다. 나는 그들을 어떻게 다룰 줄 몰랐다. –

0

나는 생각 유사한 방법으로 USSD 서비스 파싱이 진행 중입니다. USSD 답신을 분석하는 클래스를 살펴보십시오 : http://codepaste.ru/7545/. 이게 당신을 도울 수 있기를 바랍니다. 행운을 빕니다!

+0

나는이 수업을 들었다. 그러나 IsFound()는 항상 거짓입니다. 서비스 정보 메시지를 받으면 OK 대화 상자로 나타납니다. 그래서 OK 버튼을 누를 때까지는 아무 것도 사용할 수 없습니다. 나는 그것이 ussd 답장인지 확실하지 않습니다. –

+0

logcat을 실행하고이 대화 상자가 나타나면 어떻게되는지보십시오. logcat -b main – Yury

+0

"logcat -v time -b main PhoneUtils : D"는 빈 문자열을 반환합니다. 실제 장치에서. –

관련 문제