swift サイレントモードを検知してダイアログを表示

概要

アラームアプリを作成しています
アラームを鳴らす方法としては、ユーザーが設定したタイミングでUNUserNotificationを設定しています

Swift

// 時間を取得するコンポーネント let setDate = Date(timeInterval: TimeInterval(60*5*i), since: date) // ローカル通知が発動するtrigger(日付マッチ)を作成 let calendar = Calendar.current let dateComponents = calendar.dateComponents([.year, .month, .day, .hour, .minute], from: setDate) let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false) // identifier, content, triggerからローカル通知を作成(identifierが同じだとローカル通知を上書き保存) let request = UNNotificationRequest(identifier: String(i+70), content: content, trigger: trigger) // ローカル通知を登録 let center = UNUserNotificationCenter.current() center.add(request) { (error) in print(error ?? "ローカル通知登録 OK") // error が nil ならローカル通知の登録に成功したと表示します。errorが存在すればerrorを表示します。 }

基本的な機能は完成していますが、一点問題が発生しています

問題点

ユーザーがiPhoneをサイレントモードに設定している場合、音を鳴らすことができず、バイブのみがなります。
このままではアラームとして機能しないため、改善したいと考えています

検討したこと

他のアラームアプリを確認したところ、サイレントモードでもアラームを鳴らすというのは厳しいのではないかと考えています
そのため、ユーザーがアラームをセットしようとしたタイミングで、サイレントモードであればダイアログを表示する設計にしたいと考えています

質問

iPhoneがサイレントモードかどうかを判別するにはどのようにすれば良いのかご教授ください

コメントを投稿

0 コメント