【问题标题】:How Make iPhone to silent mode on/off using objective c如何使用objective c使iPhone进入静音模式开/关
【发布时间】:2014-04-04 06:06:06
【问题描述】:

我正在创建一个应用程序,我想在其中检测 iphone 是否处于静音模式。

我已经想到了下面的链接

Detecting the iPhone's Ring / Silent / Mute switch using AVAudioPlayer not working?

Switching between silent mode and ring mode on an iPhone

很多人说这违反了 iPhone 政策。但我见过很多应用程序也提供了这个功能

查看下面的应用链接

https://itunes.apple.com/us/app/silentalert/id506092189?mt=8

我也想改变 iPhone 的静音模式,就像上面的应用一样。

有人知道吗?

【问题讨论】:

  • 你找到答案了吗?我也在找一样的

标签: iphone objective-c silent utility-method


【解决方案1】:

有办法,但您的申请会被 Apple 拒绝(我不确定,可能不会)。将 MPVolumeView 添加到您的视图中,但不要将其显示给用户(为此,您可以根据您的视图更改框架)。您可以从此控件获取声级。代码如下(iOS+7已测试):


    - (void)someMethod
    {
        MPVolumeView *systemVolumeSlider = [[MPVolumeView alloc] initWithFrame:  CGRectMake(-100, -100, 16, 16)];
        [systemVolumeSlider setUserInteractionEnabled:NO];
        systemVolumeSlider.showsRouteButton = NO;
        [self.view addSubview: systemVolumeSlider];
        [systemVolumeSlider sendSubviewToBack:self.view];

        [[AVAudioSession sharedInstance] setActive:YES error:NULL];

        float currentSoundLevel = [self getVolumeLevel];
        NSLog(@"volume level : %f", currentSoundLevel); // if it is 0, the phone is in silent mode

        // do your job here... 

        [[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0]; // 1.0 is the max level

        // do your job here...
     }

    - (float)getVolumeLevel
    {
        MPVolumeView *slide = [MPVolumeView new];
        UISlider *volumeViewSlider;
        for (UIView *view in [slide subviews]){
            if ([[[view class] description] isEqualToString:@"MPVolumeSlider"])
                volumeViewSlider = (UISlider *) view;
        }
        return [volumeViewSlider value];
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-01
    • 2012-05-06
    • 1970-01-01
    • 2010-09-22
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多