2015-04-24 70 views
3

我試圖讓我的手機震動並顯示通知,如果我的平板電腦通過藍牙從手機斷開連接。如果通過平板電腦的藍牙菜單將我的平板電腦與手機斷開連接,無論是在手機屏幕打開還是關閉時(我將手機保持睡眠半小時,然後將平板電腦從平板電腦的藍牙菜單斷開連接它的工作原理)。如果我通過手機的藍牙菜單將手機與平板電腦斷開連接,它也可以工作。如果我拿着手機離開平板電腦,並關閉手機屏幕,它也可以工作。與藍牙斷開連接後振動並不總是有效

但是,如果我的手機屏幕離開平板電腦,振動不會發生。不過,通知確實會出現,因爲我在幾分鐘後檢查了手機,並且通知中有正確的時間戳(所以通知不會在我喚醒手機時顯示)。我完全困惑。

這裏是我的相關代碼:

public class BluetoothService extends Service { 

public final BroadcastReceiver BluetoothScanner = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     String trueAction = intent.getAction(); 
     if(BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(trueAction)){ 

      BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE); 
      String deviceName = device.getName(); 
       dcNotify(deviceName); 

       Toast.makeText(context, deviceName + " has disconnected", Toast.LENGTH_LONG).show(); 

     } 

    } 

}; 


public void dcNotify(String s) { 
    Log.d("status", "commenced"); 
    int notificationId = 1; 
    NotificationCompat.Builder notificationBuilder = 
      new NotificationCompat.Builder(this) 
        .setContentTitle("Device Disconnected") 
        .setSmallIcon(R.mipmap.ic_launcher); 

    NotificationManagerCompat notificationManager = NotificationManagerCompat.from(this); 

    String contentText = "Disconnected from " + s; 

     notificationBuilder.setContentText(contentText); 

     long[] pattern = { 0, 100, 500, 100, 500, 100, 500}; 
     Notification notification = notificationBuilder.build(); 
     notification.vibrate = pattern; 
     notification.defaults |= Notification.DEFAULT_VIBRATE; 
     notificationManager.notify(notificationId, notification); 
} 
} 
+0

只是好奇,如果你用不同的Android手機試過嗎?它可能是關於你的特定設置的東西,它會覆蓋你的應用程序? – DigitalNinja

+0

是啊我已經試過這與Oppo查找7和Nexus 4以及(我的主要設備是一個OnePlus) – user2524995

回答

0

不要忘記啓用鈴聲和 通知的振動設置。進入設置 - >聲音。檢查「發出振動」。

https://stackoverflow.com/a/13905212/972311

也無關,但使用生成器模式:

NotificationCompat.Builder builder = new NotificationCompat.Builder(this) 
    .setContentTitle("Device Disconnected") 
    .setSmallIcon(R.mipmap.ic_launcher) 
    .setContentText(contentText) 
    .setVibrate(pattern) 
    .setDefaults(Notification.DEFAULT_VIBRATE); 
+0

這實際上是我最初的實現,它有完全相同的問題 – user2524995