2012-08-31 3 views
6

Ich habe den Code mit SetOnClick ausstehende Absicht bearbeitet, und dieser Code funktioniert für ImageView und Benachrichtigungen Text getrennt, wie ich will, aber ich brauche noch etwas Hilfe.Benutzerdefinierte Benachrichtigung mit Remote-Ansicht auf Android

Ich möchte Mediaplayer aus meiner Serviceklasse pausieren oder abspielen. Wie kann ich also auf die Wartungsmethode "Stopp" oder "Abspielen" von Benachrichtigung ausstehende Absicht zugreifen?

Einige sagen Broadcast-Empfänger werden Ihnen helfen, aber ich verstehe nicht genau, wie es funktionieren wird. Ich habe es geschafft, einen Webbrowser über die Pause-Schaltfläche aus der Benachrichtigung zu öffnen, aber ich weiß nicht, wie man auf Service-Methoden zugreifen kann. Teilen Sie einen beliebigen Beispielcode mit, wenn Sie einen haben.

@SuppressWarnings("deprecation") 
void showNotification() { 
    int pendingRequestCode = 0; 
     int pendingFlag = 0; 

     final Resources res = getResources(); 
     final NotificationManager notificationManager = (NotificationManager) getSystemService(
       NOTIFICATION_SERVICE); 
     Intent intent = new Intent(this,MainActivity.class); 
     PendingIntent pi= PendingIntent.getActivity(this, 0, intent, 0); 
     Notification.Builder builder = new Notification.Builder(this) 
       .setSmallIcon(R.drawable.ic_action_search) 
       .setAutoCancel(true) 
       .setTicker("this is notification") 
       .setContentIntent(pi); 


     // Sets a custom content view for the notification, including an image button. 
     RemoteViews layout = new RemoteViews(getPackageName(), R.layout.notification); 
     layout.setTextViewText(R.id.notification_title, getString(R.string.app_name)); 
     Intent clickIntent = new Intent(Intent.ACTION_VIEW, Uri_myBlog); 
     PendingIntent pendingIntent = PendingIntent.getActivity(getApplicationContext(),pendingRequestCode, clickIntent, pendingFlag); 
     layout.setOnClickPendingIntent(R.id.notification_button,pendingIntent); 
     builder.setContent(layout); 

     // Notifications in Android 3.0 now have a standard mechanism for displaying large 
     // bitmaps such as contact avatars. Here, we load an example image and resize it to the 
     // appropriate size for large bitmaps in notifications. 
     Bitmap largeIconTemp = BitmapFactory.decodeResource(res, 
       R.drawable.pause); 
     Bitmap largeIcon = Bitmap.createScaledBitmap(
       largeIconTemp, 
       res.getDimensionPixelSize(android.R.dimen.notification_large_icon_width), 
       res.getDimensionPixelSize(android.R.dimen.notification_large_icon_height), 
       false); 
     largeIconTemp.recycle(); 

     builder.setLargeIcon(largeIcon); 

     notificationManager.notify(NOTIFICATION_DEFAULT, builder.getNotification()); 
    } 

    PendingIntent getDialogPendingIntent(String dialogText) { 
     return PendingIntent.getActivity(
       this, 
       dialogText.hashCode(), // Otherwise previous PendingIntents with the same 
             // requestCode may be overwritten. 
       new Intent(ACTION_DIALOG) 
         .putExtra(Intent.EXTRA_TEXT, dialogText) 
         .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK), 
       0); 
    } 
+0

Gibt mir einen Vorschlag.Ich baue eine große Ansicht Benachrichtigung mit RemoteView, um Wiedergabe/Pause wie diesen Link zu steuern (http://StackOverflow.com/questions/14508369/how-to-create-a -notification-ähnlich-zu-spielen-Musik-app-from-google) Alle sind richtig, aber wenn ich Gerät zurück Schaltfläche und aus der Anwendung klicken ION-Click-Ereignis (Wiedergabe/Pause/Vorwärts/Schließen) -Taste funktioniert nicht. Bitte helfen Sie mir. –

Antwort

6

Sie sagen nicht, welche Version von Android Sie zielen, aber es ist nicht möglich, bis Android 3.x (Honeycomb) im Allgemeinen. Also, wenn du willst, dass das auf 2.x passiert, dann tut mir leid - du hast kein Glück.

Für Honeycomb, müssen Sie einfach ein benutzerdefiniertes Layout erstellen und zuweisen PendingIntent für jede Schaltfläche, die Sie benötigen, indem Sie aufrufen. Wenn Sie bekam Proben des SDK heruntergeladen haben, dann sehen MainActivity der HoneycombGallery app (wird in Ihrem <SDK>\samples\android-XX\HoneycombGallery\ Ordner. XX alles von 14 (oder höher).

+0

mein Ziel ist min 2.2 bis 4.1 ... es ist ok, dass Froyo diese Einrichtung nicht unterstützen .. aber Waben und Jellybean Benutzer können es in meiner App verwenden Bitte führen Sie mich für diese Funktionen –

+0

sehen Sie die bearbeitete Antwort –

+0

gibt es einen Weg zu überprüfen Android API-Nummer und entsprechend kann ich meine Benachrichtigungsart wie normal für weniger als 2,2 und Button-Benachrichtigung für 2,3 und höher –