2014-09-26 5 views
0

내 질문은 어리석은 것처럼 보이지만 SMS 수신시 간단한 코드를 사용하여 Toast을 만들지 만 내 건배는 불가능하다.broadcastreceiver와 건배를 할 수 없다. onReceive를 호출 할 수 없다.

내 Android 매니페스트 :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.romain.assistantvocal" > 
<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 

    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    <uses-permission android:name="android.permission.READ_SMS" /> 

    <receiver class="com.example.romain.SMSReceiver" android:name=".SMSReceiver"> 
     <intent-filter android:priority="100"> 
      <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
     </intent-filter> 
    </receiver> 
    <activity 
     android:name=".MyActivity" 
     android:label="@string/app_name" > 


     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 


    </activity> 

    <receiver class="com.example.romain.SMSReceiver" android:name=".SMSReceiver"> 
     <intent-filter android:priority="100"> 
      <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
     </intent-filter> 
    </receiver> 
</application> 

그리고 여기 내 클래스 SMSReceiver :

package com.example.romain.assistantvocal; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.speech.tts.TextToSpeech; 
import android.telephony.gsm.SmsMessage; 
import android.widget.Toast; 

import java.util.Locale; 

/** 
* Created by romain on 26/09/2014. 
*/ 
public class SMSReceiver extends BroadcastReceiver 
{ 


    @Override 
    public void onReceive(Context context, Intent intent) 
    { 

     Toast.makeText(context,"gg romstan",Toast.LENGTH_LONG).show(); 

    } 

} 

가 귀하의 답변에 미리 감사드립니다.

+0

'intent-filter android : priority = "100"> 100 to like'6565' –

+1

class = "com.example.romain.SMSReceiver"'를 제거하고 두 번 선언하지 마십시오. – njzk2

답변

-1
replace 
    <receiver class="com.example.romain.SMSReceiver" android:name=".SMSReceiver"> 
with 
     <receiver android:name="com.example.romain.assistantvocal.SMSReceiver"> 

만약을 통해 UR 다음 순서가 방송의 인식이 각 수신기가 차례로 실행, 그것은 다음 수신기에 그 결과를 전파하거나 완전히 할 수 있습니다 "라고 방송을 중단하여 다른 수신자에게 전달되지 않도록하십시오. " 그래서. 브로드 캐스트가 데이터 전달을 중지하면 u가 메시지를받지 않습니다. ur 수신기에 로그인하여 확인하십시오. ur 토스트 메시지가 정확하기 때문에 ur 메시지 수신 여부. U는 안드로이드 가이드 라인에 따라 우선 순위를 1000 이상으로 유지할 수 없습니다. 그래서 1000에 가깝거나 우선 순위를 없애고 확인하십시오.

+0

우선 순위를 없애거나 999 또는 900으로 설정하면 더 이상 작동하지 않습니다. –

+0

onreceive 메서드가 호출됩니다. 다음을 확인하기 위해 로그에 보관했습니다. –

+0

로그에 아무 것도 표시되지 않습니다./ –

0

이 revicer 사용해보십시오 :

<receiver android:name=".SmsReceiver" android:permission="android.permission.BROADCAST_SMS" android:exported="true"> 
    <intent-filter android:priority="6565" > 
     <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
    </intent-filter> 
</receiver> 
+0

doesn 999와 6565로 시도해도 아무 일도 일어나지 않습니다. –

관련 문제