2017-02-21 21 views
2

Я создаю медиа-плеер Android, который будет воспроизводить радиопоток из URL. Кусок кода следующим образом:MediaBrowserCompat.Connect() всегда вызывает callConnectionFailed() callback

public class BaseActivity extends ActionBarCastActivity implements MediaBrowserProvider { 
private MediaBrowserCompat mMediaBrowser; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    mMediaBrowser = new MediaBrowserCompat(this, 
      new ComponentName(this, MusicService.class), mConnectionCallback, null); 
} 

@Override 
protected void onStart() { 
    super.onStart(); 

    mMediaBrowser.connect(); 
} 

private final MediaBrowserCompat.ConnectionCallback mConnectionCallback = 
    new MediaBrowserCompat.ConnectionCallback() { 
     @Override 
     public void onConnected() { 
      //setSupportMediaController code 
     } 

     @Override 
     public void onConnectionSuspended() { 

     } 

     @Override 
     public void onConnectionFailed() { 
      Log.d(TAG, "onConnectionFailed"); 
     } 
    }; 
} 

Здесь MusicService это услуга, которая проходит MediaBrowserServiceCompat и да, поместите следующий код в манифесте:

<service 
android:name=".playback.RadioPlayerService" 
android:exported="true" 
tools:ignore="ExportedService"> 
<intent-filter> 
    <action android:name="android.media.browse.MediaBrowserService" /> 
</intent-filter> 

После запуска приложения, он всегда вызывает метод обратного вызова onConnectionFailed. Но не нашел способа обнаружить фактическую причину подключения. Любая идея, как найти ошибку?

ответ

0

Ответ на это, поскольку я просто столкнулся с той же проблемой, когда я продолжал получать результат onConnectionFailed. Оказывается, решение состояло в том, что я забыл обновить имя службы в своем AndroidManifest.xml.

Я думаю, проблема может быть здесь. У вас есть служба, объявленная в вашем манифесте, однако для имени установлено значение «.playback.RadioPlayerService», а при создании MediaBrowser вы ссылаетесь на «MediaService.class». Попробуйте заменить

android:name=".playback.RadioPlayerService" 

с

android:name=".MusicService" 

или, в качестве альтернативы, обновить создание экземпляра MediaBrowser для ссылки RadioPlayerService.class если существует.

 Смежные вопросы

  • Нет связанных вопросов^_^