このコードを使用して割り込みフィルターを設定しています:
NotificationManager myNotificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
myNotificationManager.setInterruptionFilter(NotificationManager.INTERRUPTION_FILTER_PRIORITY);
すべてのデバイスで非常にうまく機能しますが、何らかの理由で、Android9を使用するXiaomiデバイスでは機能しません。これらのデバイスではサイレントモードがアクティブになっていません。変更はありません。デバイスに現在の割り込みは何であるかを尋ねると、値5で応答します。これは不明であり、ここに記載されているAndroidDeveloperでは文書化されていない値です。
int iCurrentInterruption = oNotificationManager.getCurrentInterruptionFilter();
iCurrentInterruptionの値は5です。次のいずれでもありません。
INTERRUPTION_FILTER_UNKNOWN = 0
INTERRUPTION_FILTER_ALL = 1
INTERRUPTION_FILTER_PRIORITY = 2
INTERRUPTION_FILTER_NONE = 3
INTERRUPTION_FILTER_ALARMS = 4
Xiaomiデバイスでは、システムが割り込みフィルターをアクティブ化するのに時間がかかるため、すぐに結果を要求することはできません。それで、私は一瞬寝て、その後尋ねます。また、最初はアクティブにならないことがあるので、もう一度setInterruptionFilterを呼び出す必要があります。
このようなもの:
setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
wait
If INTERRUPTION_FILTER_PRIORITY==getCurrentInterruptionFilter() then return OK
//Second try:
setInterruptionFilter(INTERRUPTION_FILTER_PRIORITY)
wait
If INTERRUPTION_FILTER_PRIORITY==getCurrentInterruptionFilter() then return Ok
return error
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加