2014-01-20 2 views
0

У меня есть служба COMPLETED ON BOOT, в которой музыка начинается сразу, если я получаю SMS-сообщение.не может начать службу при получении SMS-сообщений

Я что-то не так?

public class MyService extends Service { 

final MediaPlayer mPlayer = MediaPlayer.create(getApplicationContext(), R.raw.son1); 

private final BroadcastReceiver receiver = new BroadcastReceiver() { 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      String action = intent.getAction(); 
      if(action.equals("android.provider.Telephony.SMS_RECEIVED")){ 
      AudioManager mAudioManager = (AudioManager)getApplication().getSystemService(Context.AUDIO_SERVICE); 
      mAudioManager.setStreamVolume(AudioManager.STREAM_MUSIC, mAudioManager.getStreamMaxVolume(AudioManager.STREAM_MUSIC), 0); 
          mPlayer.start(); 
      } 
     } 
    }; 

} 


<service android:name=".MyService"/> 
    <receiver android:name=".AutoStart"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" /> 
     </intent-filter> 
     <intent-filter> 
      <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
     </intent-filter> 
    </receiver> 
+0

Пожалуйста, пост код в AndroidManifest.xml как хорошо – Vigbyor

+0

где вы зарегистрировали этот приемник? –

+0

Имеет ли logcat сообщение что-нибудь интересное? (например, «отсутствующее разрешение») – Sdra

ответ

0

Я предлагаю вам использовать android:priority="999" в вашем AndroidManifest.xml следующим образом,

<receiver 
     android:name="com.application.reciever.SMSReceiver" 
     class="com.application.reciever.SMSReceiver" android:exported="true"> 
     <intent-filter android:priority="999" > 
      <action android:name="android.provider.Telephony.SMS_RECEIVED" /> 
     </intent-filter> 
</receiver> 

Таким образом, приоритет вашего приложения Получить на SMS Получать события.

public class SMSReceiver extends BroadcastReceiver 
{ 
     @Override 
     public void onReceive(Context mContext, Intent intent) 
     { 
      // Your code to play music 
     } 
} 
+0

Я пропустил андроид: приоритет. Большое спасибо – Andrey

0

Возможно, вы пропустите разрешение на получение SMS_RECEIVED трансляций. Попробуйте добавить в свой манифест:

<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission> 
Смежные вопросы