gpt4 book ai didi

ios - 如何阻止 iOS 7 控制中心控制音乐应用程序?

转载 作者:行者123 更新时间:2023-11-28 22:23:21 25 4
gpt4 key购买 nike

我们的应用通过成为远程控制事件的第一响应者,明确阻止使用远程控制的用户表单,例如来自 iOS7 之前的旧跳板、耳塞。然而,在 iOS7 上,相同的代码无法绕过控制中心的音乐控件。

从测试来看,控制中心似乎绕过了所有音乐控制事件,包括 UIEventSubtypeRemoteControlPause 和 UIEventSubtypeRemoteControlPlay,以及 UIEventSubtypeRemoteControlTogglePlayPause。

是控制中心有自己的远程控制协议(protocol),还是iOS7对远程控制事件的拦截方式变了?

相同的阻止代码仍然可以在 iOS6 设备上完美运行。这是我们的工作:

  1. 在我们的 appDelegate 中添加了一个方法:

    (BOOL)canBecomeFirstResponder{返回是;

  2. 在 applicationDidBecomeActive 中调用它:

    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];

    //设置自己为第一响应者[自己成为第一响应者];

  3. 在 applicationWillResignActive 中调用它

    //关闭远程控制事件传递[[UIApplication sharedApplication] endReceivingRemoteControlEvents];

    //辞去第一响应者[ self resignFirstResponder];

  4. 终于添加了

(void)remoteControlReceivedWithEvent:(UIEvent *)receivedEvent {

    if (receivedEvent.type == UIEventTypeRemoteControl) {

switch (receivedEvent.subtype) {

case UIEventSubtypeRemoteControlTogglePlayPause:
NSLog(@"Received: UIEventSubtypeRemoteControlTogglePlayPause\n");
break;

case UIEventSubtypeRemoteControlPreviousTrack:
NSLog(@"Received: UIEventSubtypeRemoteControlPreviousTrack\n");
break;

case UIEventSubtypeRemoteControlNextTrack:
NSLog(@"Received: UIEventSubtypeRemoteControlNextTrack\n");
break;

case UIEventSubtypeRemoteControlPlay:
NSLog(@"Received: UIEventSubtypeRemoteControlPlay\n");
break;

case UIEventSubtypeRemoteControlPause:
NSLog(@"Received: UIEventSubtypeRemoteControlPause\n");
break;

case UIEventSubtypeRemoteControlStop:
NSLog(@"Received: UIEventSubtypeRemoteControlStop\n");
break;

default:
NSLog(@"Received: Some remove control events\n");
break;
}
}
}

任何指针将不胜感激。

最佳答案

您无法阻止音乐应用程序。你的应用程序可以成为一个(苹果不会喜欢那样)然后控制中心会控制你的

关于ios - 如何阻止 iOS 7 控制中心控制音乐应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19686704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com