matfire / bluetooth_classic

MIT License
9 stars 6 forks source link

IOS problem #1

Open ermirshabani1 opened 9 months ago

ermirshabani1 commented 9 months ago

Im getting this error when im trying to scan for devices in ios

MissingPluginException(No implementation found for method getDevices on channel com.matteogassend/bluetooth_classic) XPC Connection Invalid

Even though i set all the permissions

matfire commented 9 months ago

Hi there,

Unfortunately there is no iOS implementation (yet).

I'll get around to working on that in the near future, but I don't have a release date yet. Will update this issue when done

ermirshabani1 commented 9 months ago

Hey! Thanks for the response, and also for the package.

Would be very helpful for flutter community if we have the ios implementation very soon. I've been researching for a package that works in ios also, and seems to be none.

matfire commented 9 months ago

I'll probably get around to it this weekend, but I don't want to make any promises

ermirshabani1 commented 9 months ago

Thank you!

alechristian commented 9 months ago

Hello friends, I believe that for iOS devices, apple does not support Bluetooth Classic on devices that are not approved in the MFi program. I could be wrong, but I did a lot of research on the apple forum.

matfire commented 9 months ago

Hey, I looked around a bit and on this page there is no mention of the MFi program https://developer.apple.com/documentation/corebluetooth Will definitely take a better look this weekend, but it would seem weird for it to work this way (but knowing Apple, it wouldn't surprise me that much)

ermirshabani1 commented 9 months ago

Yes, the apple does allow connection only with the devices that are approved from the MFI program.

My device is actually approved from the MFI program, the main issue is that there is no package that supports connection on ios devices for Bluetooth classic in flutter, but there are plenty of BLE packages.

matfire commented 9 months ago

Damn, that's not good. I'll obviously still do the iOS part for this plugin, but I'll need someone to test it on approved hardware, I guess. @ermirshabani1, would you be up for it ?

ermirshabani1 commented 9 months ago

Yes we can test it, but for now there are still some issues on the package.

Like when im listening to a StreamSubscription to get all of the devices the first time its Ok. But whenever i cancel the stream and i try to start from the begining it throws "Stream has already been listened to", i tried to make it null, cancel, and also in the dispose() but its still the same error.

This even happens when example i'm on the page 2, scan for the devices, close the page and dispose the stream. And i go back to the page 2, and try to scan for the devices it throws Stream has already been listened to.

Maybe im doing something wrong?

matfire commented 9 months ago

In the current version, the stream is continuous and simply stops emitting when you call stopScan, for example. Same for the other streams. You shiould be able to listen multiple times, but cancelling it might break things indeed. This is something I plan to address in a future release, maybe with the IOS version

matfire commented 9 months ago

Yes, the apple does allow connection only with the devices that are approved from the MFI program.

My device is actually approved from the MFI program, the main issue is that there is no package that supports connection on ios devices for Bluetooth classic in flutter, but there are plenty of BLE packages.

BTW, I think we might be able to get away from the MFI requirements. This extension is just for handling bluetooth, so according to Apple, I might just be able to skip that step:

Developers and manufacturers of accessories that connect to an Apple device using only Bluetooth Low Energy, Core Bluetooth, or standard Bluetooth profiles supported by iOS. From https://mfi.apple.com/en/who-should-join

JManikiza commented 8 months ago

Omg this is perfect! I had given up on someone doing both Android and iOS. Otherwise, I'm programming for the two separate OS just for the Classic. I'll star the repo, I can't wait to see how you do it. Much blessings

devThalyson commented 8 months ago

OMG! I've been looking for a Flutter plugin that handles classic Bluetooth connection for quite some time now. I also have a device certified by the MFI program and could assist with testing as well. I hope it's still in development.

matfire commented 8 months ago

Thanks for the kind words, everyone. This plugin is still in development, though I'll admit time is a bit limited right now. I'll definitely update you all when work begins and will definitely ask for testers at some point 🙂

matfire commented 4 months ago

Hey all, as you might have noticed by the lack of updates, I don't really have the time to develop new features for this plugin. I'm glad to accept and review PRs if you want to contribute, though :)