How to list out all MFI devies into the iOS app?

5.3k views Asked by At

I want to display the list of all MFI passed apple devices which are not paired before from iOS settings.

I can list out the connected devices using below code:

NSArray *accessories = [[EAAccessoryManager sharedAccessoryManager]

                               connectedAccessories];

So My Query is:

  1. Can i scan all the available unpaired MFI devices using "External Accessories" framework in to the iOS app and then i can pair them from the iOS app.

Please help me for shorting this out.

Lots of thanks in advance.....

1

There are 1 answers

5
brianLikeApple On BEST ANSWER

Yes, You can.

From iOS 6 EA Framework provides built-in bluetooth pairing function within app.

Check this:

[[EAAccessoryManager sharedAccessoryManager] showBluetoothAccessoryPickerWithNameFilter:nil completion:^(NSError *error) {

}];

You can also use filter parameters to filter your devices.

But remember, if you send or receive data from device via MFI, you may need to add protocol string into Info.plist on "Supported external accessory protocols"

Edit:

OK, I will list step by step of MFI world.

1.What above code is doing?

It pops up a small tableView to show all available Bluetooth devices.

2.How to pair?

Just click a cell shown in the table. It will automatically connect to device.

3.How to identify device is paired or not?

Check following code, You should understand what is it.

[[EAAccessoryManager sharedAccessoryManager] showBluetoothAccessoryPickerWithNameFilter:nil completion:^(NSError *error) {
        if (error) {
            NSLog(@"error :%@", error);
        }
        else{
            NSLog(@"You make it! Well done!!!");
        }
    }];

4.Notification connect or disconnect?

Check the following notifications.

EAAccessoryDidConnectNotification
EAAccessoryDidDisconnectNotification

There are a lot things you can research on MFI, so it is better go through Apple documents and example code to understand it deeply.