我想检测连接到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
永远不会被调用。
请帮帮我。
答案 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
问候。