如何在iOS中的蓝牙键盘中检测到何时按下播放按钮

时间:2014-03-28 04:24:08

标签: ios bluetooth media-player bluetooth-lowenergy ios-bluetooth

我想检测连接到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;
}

它完美无缺,但我不知道命令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永远不会被调用。

请帮帮我。

1 个答案:

答案 0 :(得分:0)

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

1- Detect Bluetooth answer/end-call button on iPhone

2- Get the action of a connected bluetooth earphone in IOS7

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

我也尝试过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": How to use bluetooth classic instead of le 但它也有限制(帖子正在拍摄" MFi配件"!MFi用于"用于iphone"?!?!?!)

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

更多帖子:Connecting to a Bluetooth device from iOS, no MFi

问候。