iPhone、iOS 6でデフォルトの振動持続時間を測定しようとしています:
@property (nonatomic, retain) NSDate *startDate;
- (void) runTest
{
AudioServicesAddSystemSoundCompletion(kSystemSoundID_Vibrate, NULL, NULL, playSoundFinished, self);
self.startDate = [NSDate date];
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
}
void playSoundFinished(SystemSoundID soundID, void *data)
{
MyClassName *foo = (MyClassName*)data;
double vibrationDurationMs = [foo.startDate timeIntervalSinceNow] * -1000.0;
}
ただし、システム設定でバイブレーションが有効になっているかどうかに関係なく、1 ~ 2 ミリ秒しか返されません。
デフォルトの長さは 400 ミリ秒で、その後に 100 ミリ秒の無音が続くはずだと聞きました。
上記のコードは正しいですか?