【问题标题】:iPhone - How do I know if the vibrate is on or off for iOS?iPhone - 我如何知道 iOS 的振动是打开还是关闭?
【发布时间】:2011-07-28 01:10:24
【问题描述】:

你知道我怎么知道 iPhone 是否处于振动模式吗? 我在网上没有找到任何关于此的内容...太累了,看不到?

我想在应用程序中显示一个图标,以便用户可以知道手机是否处于振动模式。 Tha 应用程序也有不同的行为,具体取决于用户是否想要被打扰(振动关闭)或不被打扰(振动打开)。

谢谢。

【问题讨论】:

  • 我知道我不应该,但是... snicker
  • 知道它处于振动模式后,您想达到什么目的?用于音频播放?
  • @iWasRobbed :我想在应用程序中显示一个图标,以便用户可以知道手机是否处于振动模式。
  • 不确定视觉指示器是否真的有必要。你真的不需要知道。您只需向操作系统发出命令,然后它会根据硬件状态做出响应。
  • @FreeAsInBeer:我可以描述一下整个应用程序吗?它不仅显示一个指标。它具有不同的行为,具体取决于用户是否想要被打扰。

标签: iphone cocoa-touch vibration


【解决方案1】:

您应该可以使用:

#import "AudioToolbox/AudioToolbox.h"

- (void) ifSilentModeThenShowIcon
{
   CFStringRef state;
   UInt32 propertySize = sizeof(CFStringRef);
   AudioSessionInitialize(NULL, NULL, NULL, NULL);
   AudioSessionGetProperty(kAudioSessionProperty_AudioRoute, &propertySize, &state);

   if(CFStringGetLength(state) == 0)
   { 
     // phone's ringer is off so put
     // some icon showing code here
   }
}

Source

【讨论】:

  • 不错的发现。我假设这对 App Store 来说是安全的?
  • 是的,这些只是音频会话属性,所以它是公共 API。更多信息在这里:developer.apple.com/library/ios/#documentation/AudioToolbox/…
  • AudioSessionInitialize 和 AudioSessionGetProperty 在 iOS 7 中已弃用,还有其他方法吗?
猜你喜欢
  • 2012-10-11
  • 1970-01-01
  • 1970-01-01
  • 2018-10-13
  • 2013-02-14
  • 2014-11-03
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
相关资源
最近更新 更多