Frage

Ich arbeite an einem Musik-Player-Widget (Home-Bildschirm-Widget) .. Es braucht nur ein Lied zu spielen, (vorzugsweise mit der Mediaplayer-Klasse). Aber ich bin nicht sicher, wie es zu implementieren. Ich bin ein bisschen unerfahren mit Android Entwicklung, gerade so, dass die erwähnt werden.

Die Klasse I bisher haben sie AppWidgetProvider, und ich denke, es ist keine gute Idee ist, diese Klasse Griff, um den musizierenden Teil zu lassen, sondern ein Service. Und wenn ja, wie?

Außerdem, ich habe 3 Tasten: Play, Pause und Stopp, und ich kann unterscheiden, die man in onReceive(...) gedrückt wurde

.

Vielen Dank im Voraus!


Hier ist die Klasse.

public class MusicManager extends AppWidgetProvider {

    private final String ACTION_WIDGET_PLAY = "PlaySong";
    private final String ACTION_WIDGET_PAUSE = "PauseSong";
    private final String ACTION_WIDGET_STOP = "StopSong";   
    private final int INTENT_FLAGS = 0;
    private final int REQUEST_CODE = 0;

    @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager,
            int[] appWidgetIds) {

        RemoteViews controlButtons = new RemoteViews(context.getPackageName(),
                R.layout.main);

        Intent playIntent = new Intent(context, MusicService.class);

        Intent pauseIntent = new Intent(context, MusicService.class);

        Intent stopIntent = new Intent(context, MusicService.class);


        PendingIntent playPendingIntent = PendingIntent.getService(
                context, REQUEST_CODE, playIntent, INTENT_FLAGS);
        PendingIntent pausePendingIntent = PendingIntent.getService(
                context, REQUEST_CODE, pauseIntent, INTENT_FLAGS);
        PendingIntent stopPendingIntent = PendingIntent.getService(
                context, REQUEST_CODE, stopIntent, INTENT_FLAGS);

        controlButtons.setOnClickPendingIntent(
                R.id.btnPlay, playPendingIntent);
        controlButtons.setOnClickPendingIntent(
                R.id.btnPause, pausePendingIntent);
        controlButtons.setOnClickPendingIntent(
                R.id.btnStop, stopPendingIntent);

        appWidgetManager.updateAppWidget(appWidgetIds, controlButtons);         
    }
}
War es hilfreich?

Lösung

hinzugefügt <service android:name=".MusicService" android:enabled="true" /> zum Manifest!

Andere Tipps

In der onUpdate(...) Methode Ihrer AppWidgetProvider, verwenden Sie so etwas wie dieses einen Dienst zu starten (in diesem Beispiel ordnet den Dienst auf eine Schaltfläche klicken Ereignis):

Intent intent = new Intent(context, MusicService.class);
PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0);

// Get the layout for the App Widget and attach an on-click listener to the button
RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.appwidget_provider_layout);
views.setOnClickPendingIntent(R.id.button, pendingIntent);

Für weitere Informationen sehen hier

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top