Как я могу определить, когда кнопка воспроизведения нажата на клавиатуре Bluetooth в 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;
}

Он работает отлично, но я не знаю, какую букву 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 никогда не вызывается, когда я нажимаю кнопку.

Пожалуйста помогите.


person Jose Garfias Lopez Parkinson    schedule 28.03.2014    source источник


Ответы (1)


Я думаю, что это те же вопросы с большим количеством ответов, но с ограниченными решениями!

1- Обнаружение кнопки ответа/завершения вызова Bluetooth на iPhone

2- Получите действие подключенного наушника Bluetooth в IOS7.

По моим исследованиям, некоторые люди получали какое-то событие от своих устройств с Bluetooth через «remoteControlReceivedWithEvent», но не все! Некоторые, как вы и я, не получают ничего! И очень немногие получают всю тему в соответствии с этим комментарием (из одного из комментариев по ссылке выше «потому что моим музыкальным приложением можно отлично управлять с помощью наушников Bluetooth с помощью кода выше, я думаю, что это также должно быть применимо». !)

Я также пробовал Core Bluetooth, но он поддерживает только LEB (устройства Bluetooth с низким энергопотреблением)! https://developer.apple.com/library/ios/documentation/NetworkingInternetWeb/Conceptual/CoreBluetooth_concepts/CoreBluetoothOverview/CoreBluetoothOverview.html#//apple_ref/doc/uid/TP40013257-CH2-SW1

Кроме того, в некоторых сообщениях предполагается, что можно использовать классический bleutooth вместо «Low Energy»: le">Как использовать bluetooth classic вместо le Но у него тоже есть ограничения (пост посвящен "аксессуару MFi"! MFi это для "сделано для iphone"?!?!?!)

из сообщения выше: «Устройство Bluetooth, отличное от LE, должно быть одобрено MFi для использования с инфраструктурой внешних аксессуаров (оно должно использовать определенный чип Apple и проприетарный протокол связи). Вы не сможете создать приложений для доступа к этому устройству, если только оно не использует более открытый Bluetooth LE или не имеет этого чипа для стандартного Bluetooth. Могут быть способы сделать это через джейлбрейк, но почти все, кого я знаю, перешли на Bluetooth LE». !

дополнительная запись: Подключение к устройству Bluetooth из iOS , нет МФИ

С уважением.

person momo    schedule 07.11.2014