2014-11-07 9 views
1

정말 모든 것을 시도했지만 브로드 캐스트 리시버는 새로운 수신 SMS 브로드 캐스트를 수신하지 않습니다. 내 전화 4.4.4에서 실행 중입니다. 수신 메시지를 듣고 싶습니다.KitKat에서 SMS 수신 broadcast

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


<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 

    <receiver android:name=".SmsReceiver" 
     android:enabled="true" 
     > 
     <intent-filter> 
      <action android:name="android.provider.Telephony.SMS_RECEIVED_ACTION" /> 
     </intent-filter> 
    </receiver> 
</application> 

방송 수신기

public class SmsReceiver extends BroadcastReceiver { 

public SmsReceiver() {} 

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

    Log.d("v", "SMS onReceive"); 
} 

Gradle을 :

android { 
compileSdkVersion 20 
buildToolsVersion "21.0.0" 

defaultConfig { 
    applicationId "com.dev.xxx" 
    minSdkVersion 19 
    targetSdkVersion 20 
    versionCode 1 
    versionName "1.0" 
} 
buildTypes { 
    release { 
     runProguard false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
    } 
} 

    dependencies { 
     compile fileTree(dir: 'libs', include: ['*.jar']) 
     compile 'com.android.support:support-v4:+' 
    } 

답변

1

<action> 당신은 매니페스트에서 <receiver><intent-filter>이 잘못 정의했습니다. 그것은해야한다 : 당신은 위의 값을 갖는 클래스 상수 문자열 식별자 android.provider.Telephony.Sms.Intents.SMS_RECEIVED_ACTION, 그것을 혼동 될 수

<action android:name="android.provider.Telephony.SMS_RECEIVED" /> 

.

+0

감사합니다. 나는이 블로그 때문에 혼란스러워했다. http : //android-developers.blogspot.co.il/2013/10/getting-your-sms-apps-ready-for-kitkat.html – joseRo