2015-10-28 60 views
2

我創建服務的通知(從廣播接收器推出)這樣取消:接收到特定的短信時通知被另一位在運行Android Lollipop

this.notification = new NotificationCompat.Builder(getApplicationContext()) 
    .setContentTitle("Foo") 
    .setContentText("Bar") 
    .setSmallIcon(R.drawable.logo) 
    .setContentIntent(pIntent) 
    .build(); 
this.initializeNotificationSound(volumne, Uri.parse(melody)); 
this.initializeNotificationVibration(); 

notification.flags = Notification.FLAG_INSISTENT; 
this.notificationManager.cancelAll(); 
this.notificationManager.notify(0, notification); 

此通知設置。我想創建一個播放定義旋律的通知,不會被標準短信通知中斷。

此功能工作得很好,但是在棒棒糖,以下情形會發生:

  1. 短信收到
  2. 我通知啓動
  3. 一段時間後,通知聲音停止,默認的短信鈴聲是播放

只有當鈴聲模式靜音時纔會發生這種情況。否則,它會按預期工作,因爲cancelAll()方法會中斷SMS通知。

在此先感謝您的回覆。

回答

0

你不能改變這一點。如果您注意到,當同時創建多個通知時,即使是從唯一應用程序(例如Facebook)創建的聲音也會同時播放。這與android系統本身的通知管理有關。也許你遇到的問題是由於對特定的Android系統版本(API級別)進行了一些代碼更改,可能是cancelAll()方法。一種解決方案是找到用於檢查當前系統版本的適當代碼行。例如:

if(System_version <= lollipop) { 
//code works fine. Keep as it is 
} 
else{ 
//find the appropriate method and call it here. 
} 
+0

我將理解下列之一:1:從「棧」後,才取消礦運行另一個通知。 2.在另一個(中斷我的)完成後再次啓動我的通知。 –

+0

1:嘗試搜索[documentation](http://developer.android.com/reference/android/app/Notification.html),並找到適合您的標誌供您使用。 2:試試1,讓我知道它是否有效 –

相關問題