2

API 26(Android 8.0)では、通知ごとにNotificationChannelを定義する必要があります。各チャンネルには、独自の設定(振動、光、音など)があります。Androidの通知がNotifiationChannel.enableVibrationで振動する(偽)

問題: 私はこのチャネルの振動を無効とAndroid 8.0(セキュリティ更新プログラム2017年9月)でこれを展開電話(ネクサス5X)、通知がとにかく振動をトリガーと(ポップで自動的に開かれ)私は設定しなかったし、無効にしたい。

  1. 私はMainActivityでNotificationChannelを登録します。

    // Register NotificationChannels needed for API 26+ to display notification messages 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { 
        NotificationChannel runningChannel = new NotificationChannel(NOTIFICATION_CHANNEL_ID_RUNNING, 
          getString(R.string.notification_channel_name_running), NotificationManager.IMPORTANCE_LOW); 
        runningChannel.enableLights(false); 
        runningChannel.enableVibration(false); 
        mNotificationManager.createNotificationChannel(runningChannel); 
    } 
    
  2. 私は通知のNotificationChannelを設定します。

    notification = new NotificationCompat.Builder(context) 
          .setContentIntent(onClickPendingIntent) 
          .setChannelId(NOTIFICATION_CHANNEL_ID_RUNNING) 
          .setOngoing(true) 
          .setWhen(System.currentTimeMillis()) 
          .setAutoCancel(false) 
          .build(); 
    

アップデート(セキュリティ更新プログラム2017年10月5日)

回避策なしですべてが正常に動作するので、targetSDK 26を選択することができます(以前はこの誤動作を避けるために25を使用していました)。他のリリースで同様のバグがあった場合、最新のアップデートはまだ届いていませんでした。

+0

は、重要度レベルを変更してみてください、あなたの提案@ArnavMためNotificationManager.IMPORTANCE_HIGH –

+0

感謝。ただし、動作を変更することはありません(通知が振動してポップアップします)。なぜこれが何か変わったはずだと思う理由を説明できますか? – hb0

答えて

1

は、これは動作するようです:?

runningchannel.setVibrationPattern(new long[]{0, 0, 0, 0,0, 0, 0, 0, 0}); 

はい、それは奇妙だ

+0

ありがとう@Piotr、時間があるとすぐにそれをチェックして、正しい時に答えをマークします。乾杯! – hb0

+0

My Nexus 5Xのシステムアップデートが「2017年10月5日」になりました。このアップデートの後、私は質問で言及された偽の行動を得ることはありません。したがって、私はあなたの回避策を使用する必要はありませんでしたが、合法的なので、私は正しいaswer他の人たちがまだ最新のAndroid 8アップデートを受け取っていないか、ありがとう! – hb0

+0

私のために働かなかった –

関連する問題