1

我想检测何时在连接到 ipad 的蓝牙键盘上按下播放/暂停音乐按钮。键盘是“ ACTeck FT-850 ”。

我正在使用这种方法来检测其他按钮。

-(NSArray * ) keyCommands
{

if ([[[UIDevice currentDevice] systemVersion] intValue] !=7) return nil;

UIKeyCommand *Letter = [UIKeyCommand keyCommandWithInput: @"a" modifierFlags: 0 action: @selector(Letter:)];

UIKeyCommand *upArrow = [UIKeyCommand keyCommandWithInput: UIKeyInputUpArrow modifierFlags: 0 action: @selector(upArrow:)];

    return [[NSArray alloc] initWithObjects: upArrow, Letter,nil];
}

- (void) Letter: (UIKeyCommand *) keyCommand
{
        NSLog(@"LETRA A");
}

- (void) upArrow: (UIKeyCommand *) keyCommand
{
        NSLog("Do something");
}

- (BOOL)canBecomeFirstResponder {
    return YES;
}

它工作得很好,但我不知道输入什么字母 o 命令KeyCommandWithInput来检测“播放/暂停”音乐按钮,...我也已经尝试过这个:

-(void)viewDidAppear:(BOOL)animated
{
    [[UIApplication sharedApplication] beginReceivingRemoteControlEvents];
    [self becomeFirstResponder];
}

- (void)remoteControlReceivedWithEvent:(UIEvent *)theEvent
{
    NSLog(@"ENTER TO REMOTE CONTROL");
    if (theEvent.type == UIEventTypeRemoteControl) {
        switch(theEvent.subtype) {
            case UIEventSubtypeRemoteControlTogglePlayPause:

                NSLog(@"SE TOCO EL BOTON PLAY/PAUSE");

            case UIEventSubtypeRemoteControlPlay:

                NSLog(@"SE TOCO EL BOTON PLAY");

                break;
            default:
                return;
        }
    }
}

但是remoteControlReceivedWithEvent当我按下按钮时永远不会被调用。

请帮我。

4

1 回答 1

0

我认为这是相同的问题,答案更多但解决方案有限!

1-检测iPhone上的蓝牙接听/挂断按钮

2-在IOS7中获取连接蓝牙耳机的动作

根据我的研究,有些人通过“remoteControlReceivedWithEvent”从他们的蓝牙设备收到了一些事件,但不是全部!像你我这样的人却一无所获!并且很少有人根据此评论收到所有主题(来自上面链接中的一条评论“因为我的音乐应用程序可以通过蓝牙耳机通过上面的代码完美控制,我认为它也应该适用。”!)

我也试过Core Bluetooth,但它只支持LEB(低功耗蓝牙设备)! https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothOverview/CoreBluetoothOverview.html#//apple_ref/doc/uid/TP40013257-CH2-SW1

此外,一些帖子建议可以使用 Classic bleutooth 而不是“Low Energy”: 如何使用 bluetooth classic 而不是 le 但它也有限制(帖子是关于“MFi 配件”!MFi 是“made”吗? iphone”?!?!?!)

来自上面的帖子:“非 LE 蓝牙设备需要通过 MFi 批准才能与外部附件框架一起使用(它需要使用特定的 Apple 芯片和专有通信协议)。你将无法构建应用程序来访问此设备,除非它使用更开放的蓝牙 LE 或其中包含用于标准蓝牙的芯片。可能有办法通过越狱来做到这一点,但我认识的几乎每个人都已经转移到蓝牙 LE。!

更多帖子:从 iOS 连接到蓝牙设备,没有 MFi

问候。

于 2014-11-07T20:51:00.883 回答