iPhoneのデフォルトアラームにアクセスし、ユーザーが送信した日付に従ってアラームを設定したい.また、ユーザーがアラームの音を変更したい. それを行うことは可能ですか、可能であればどうすればそれを行うことができますか? そのために利用できるコードはありますか?これから私を連れ出すのを手伝ってください。
-前もって感謝します。
このコードを使用して iOS のデフォルト アラームを読み取ることができる場合がありますが、これは文書化されていない方法であり、App Store では許可されていません。
以下は、 http://blog.alanyip.me/read-alarms-in-ios/からコピーした Alan Yip の投稿です。
クロックとシステム アラームを操作するために、もともと iOS ストック アプリである Clock 用に提供されていたプライベート フレームワーク ( MobileTimer.framework ) があります。
明らかに、アラームを扱うときは AlarmManagerとAlarmの 2 つのクラスのみを使用します。まず、AlarmManagerのシングルトン インスタンスを取得する必要があります。
AlarmManager *manager = [AlarmManager sharedManager];
アラームにアクセスする前に、まずアラームをロードする必要があります。
[manager loadAlarms];
次に、 Clock アプリで使用可能なすべてのアラーム ( Alarm )を含む配列にアクセスできます。
NSArray *alarms = [manager alarms];
ただし、アラームをロードするときにフレームワークに問題があります。たとえば、SpringBoard でコードが実行されていると同時に、在庫の時計アプリでアラームが変更されています。SpringBoard にアラームを再度ロードしても、返されるアラーム データは古いままです。これを修正するには、クラス メソッドをAlarmManagerにフックして、元のメソッドがプリファレンスから読み取る前にプリファレンス値を強制的に同期させます。
%hook AlarmManager + (id)copyReadAlarmsFromPreferences { CFPreferencesAppSynchronize(CFSTR("com.apple.mobiletimer")); return %orig; } %end
最後に、事前に呼び出す
refreshActiveState
ことisActive
で、アラームが有効かどうかを読み取ることができます。
iPhoneのデフォルトアラームにアクセスすることを考えている場合。それを行う方法はありません。いずれにせよ、これを行う方法を見つけた場合..App Store へのアクセスは絶対に許可されません。
目覚まし時計アプリケーションを作成する場合は、 Scheduling Local Notificationsを使用する必要があります。