External Accessory

RSS for tag

Communicate with accessories connected to a device by the Apple Lightning connector or through Bluetooth using External Accessory.

External Accessory Documentation

Posts under External Accessory tag

99 Posts
Sort by:
Post not yet marked as solved
1 Replies
15 Views
I'm trying an iAP2 connection (SPP open) with Bluetooth module and Apple product. But I don't know the iAP2 UUID for sure. Can someone tell me? And I'd like to know if MFi Program is required for iAP2 connection. I'd appreciate it if you could let me know the detailed procedure for iAP2 connection.
Posted
by dlehdyd.
Last updated
.
Post marked as solved
1 Replies
91 Views
I'm working on a app that can communicate, send and receive data from our own MFi scanner. Ideally, this app can receives data and remains communication even when it's in background, but I can only runs a background task for maximum 30 sec. Along with this main app, we also have a keyboard extension as an interface that can publish collected data to other app that user prefers with string format. However, It seems like Apple doesn't allow to implement UIApplication.shared.beginBackgroundTask method in extension class, is there any alternative that worth to try? Also, can I extend app background task time elapsed to at least 30 minutes? If I can get an official response would be great!
Posted
by Rimbaud.
Last updated
.
Post not yet marked as solved
1 Replies
80 Views
Hello everyone, I'm trying to configure my WAC device trough an App. This App finds the device without problems using startSearchingForUnconfiguredAccessoriesMatchingPredicate but when I try to use configureAccessory method I get only 3 messages in Xcode and nothing happens. These messages are: 2024-03-14 12:55:56.261969+0000 App[1394:380785] ### WAC: -[EAWiFiUnconfiguredAccessoryBrowserManager configureAccessory:withConfigurationUIOnViewController:]_block_invoke_3:368 Other Region SKU 2024-03-14 12:55:56.266191+0000 App[1394:374248] ### WAC: _notificationCleanup:42 responseFlags: 3 ### WAC: _notificationCleanup:43 responseFlags: 3 For me they don't look like an Error but would be nice if someone could give me some advice on this, I didn't find nothing about it. Thanks in advance!
Posted
by ferkawii.
Last updated
.
Post not yet marked as solved
1 Replies
184 Views
Is there a possibility to develop an iOS app that is connected to an external camera connected through lightning or USB-C port and receives video stream. We need to be able to get this video stream even while the app is in the background or if the phone is locked. We could have the camera connected wirelessly through the lightning port. Is there an available library or a sample app featuring such functionalities. Thanks.
Posted
by FaridHage.
Last updated
.
Post not yet marked as solved
1 Replies
173 Views
Hello, Apple Developer Community, I am currently developing an iOS application using .NET MAUI. In this application, I need to use the ExternalAccessoryFramework to communicate with external devices. However, I couldn't find any information about the compatibility of MAUI and ExternalAccessoryFramework, and I would like to confirm whether this combination is possible. Can an iOS app developed with MAUI use the ExternalAccessoryFramework? If so, could you provide any guidelines or reference materials about its implementation? I would greatly appreciate it if you could share your knowledge and experience. Thank you in advance.
Posted
by tshm.
Last updated
.
Post marked as solved
5 Replies
412 Views
If two iOS/iPadOS devices have your app opened, is it possible to have the apps send data to each other over a wired connection? E.g. If two iPhone 15s are connected by USB-C, can I get my app in iPhone A to send data to iPhone B and vice-versa? I've been looking around for quite a while now and at this point I just want to know if it's technically feasible.
Posted
by wmk.
Last updated
.
Post not yet marked as solved
1 Replies
276 Views
Hi, I am inquiring in regard to how to handle data from a bluetooth device. The device would send data in JSON format to a Mac via bluetooth, and I would need to constantly refresh or fetch data from the device in real time. How would I go about this? Any help would be greatly appreciated. Thank you.
Posted Last updated
.
Post not yet marked as solved
1 Replies
347 Views
Before iPhone 15, the lighting interfaces required communication with external devices through mfi authentication,But there is no evidence to suggest that the USB-C interface needs to add an MFi authentication chip for authentication detection. Is there a way to use USB-C to detect external devices and communicate with each other in the app now, so that I can create my app and communicate with hardware devices
Posted
by LatuorDan.
Last updated
.
Post not yet marked as solved
0 Replies
274 Views
Hi all, hope everyone is well. I'm seeking clarification regarding AirDrop functionality in regards to apps. For example, can the new AirDrop function within iOS17, whereby putting two iPhones together transfers user contact details to one another be utilised by an app? If not, please could I have clarification what bluetooth functionality within iPhone's an App may be able to utilise and could an app connect to AirDrop API's in any way? If the new AirDrop feature is not currently able to be utilised by apps, is this likely to change in the future with upcoming iOS updates or is it a set in stone thing? Apologies, I don't have the deepest understanding of this topic and any help is really appreciated, thank you.
Posted Last updated
.
Post not yet marked as solved
1 Replies
232 Views
Hey there 👋, My team and me have implemented support for WAC devices in our App using EAWiFiUnconfiguredAccessoryBrowser. When the device we want to support is factory reset we are able to find it as well as the OS is able to. The device has a "setup wifi" button, which starts the WAC process, and iOS (as well as MacOS) are able to find it. Unfortunately we are not able to find it in that case using EAWiFiUnconfiguredAccessoryBrowser.. I could not find any restrictions on it in the documentation, any glues why we are not able to detect it in that situation? I isolated the problem in a sample and used the following implementation to test this: import Foundation import ExternalAccessory import os import Combine class WACWatcher: NSObject { private let browser: EAWiFiUnconfiguredAccessoryBrowser private let logger = Logger(subsystem: "WACWatcher", category: "networking") @Published var accessories: [EAWiFiUnconfiguredAccessory] = [] override init() { self.browser = EAWiFiUnconfiguredAccessoryBrowser() super.init() self.browser.delegate = self } func start() { browser.startSearchingForUnconfiguredAccessories(matching: nil) } func stop() { browser.stopSearchingForUnconfiguredAccessories() } } extension WACWatcher: EAWiFiUnconfiguredAccessoryBrowserDelegate { func accessoryBrowser( _ browser: EAWiFiUnconfiguredAccessoryBrowser, didUpdate state: EAWiFiUnconfiguredAccessoryBrowserState ) { switch state { case .wiFiUnavailable: logger.debug("WAC Browser state changed to wifiUnavailable") break case .stopped: logger.debug("WAC Browser state changed to stopped") break case .searching: logger.debug("WAC Browser state changed to searching") break case .configuring: logger.debug("WAC Browser state changed to configuring") break } } func accessoryBrowser( _ browser: EAWiFiUnconfiguredAccessoryBrowser, didFindUnconfiguredAccessories accessories: Set<EAWiFiUnconfiguredAccessory> ) { logger.info("WACWatcher found accessories: \(accessories)") self.accessories.append(contentsOf: accessories) } func accessoryBrowser( _ browser: EAWiFiUnconfiguredAccessoryBrowser, didRemoveUnconfiguredAccessories accessories: Set<EAWiFiUnconfiguredAccessory> ) { logger.info("WACWatcher removed accessories: \(accessories)") self.accessories = accessories.filter({ accessory in accessories.contains(where: { $0.name == accessory.name }) }) } func accessoryBrowser( _ browser: EAWiFiUnconfiguredAccessoryBrowser, didFinishConfiguringAccessory accessory: EAWiFiUnconfiguredAccessory, with status: EAWiFiUnconfiguredAccessoryConfigurationStatus ) {} } This WACWatcher gets used in a ViewModel and a view having a start stop button and a list showing the device name. If you'd need to see it, I can zip it and attach it to this post.
Posted Last updated
.
Post not yet marked as solved
1 Replies
249 Views
I am developing IOS application and trying to get the connected wifi information but i am only getting the status of the connection. I need more info e.g SSID. Pleas guide how can i get all the wifi information
Posted Last updated
.
Post not yet marked as solved
0 Replies
327 Views
One of our customers in US unable to connect to our device. current status: able to discover device, when trying to connect it throws an error " (error :Error Domain=EABluetoothAccessoryPickerErrorDomain Code=1 "(null)") " tried with different models, iPhone 11, iPhone XR, iPhone 15.. result is same. But It is working fine in Asia regions. Note: External accessory framework protocols has been added already in Info.plist. ( which has been registered in the MFi Program) Any help greatly appreciated. Thank you!
Posted
by raj-atid.
Last updated
.
Post not yet marked as solved
0 Replies
371 Views
Hello Apple Support Team, As per the business requirement, we have to communicate and exchange data chunks between applications running on iPhones and Android-based or Android phones through Bluetooth interface. We have achieved the requirement through IP/Wifi communication. We are trying to connect to Android and iPhone devices via Bluetooth through an iOS application. We carried out Bluetooth implementation using CoreBluetooth libraries. Below are the findings done by our development team: Core Bluetooth Library Implementation           Importing Core Bluetooth Library in BTConnectionManager class, which uses CBCentralManagerDelegate, CBPeripheralDelegate, CBCentralManager, CBPeripheral as peripheral, [CBPeripheral] array as peripherals array. Using the below methods: centralManagerDidUpdateState, centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber), centralManager(_ central: CBCentralManager, didConnect peripheral: CBPeripheral), peripheral(_ peripheral: CBPeripheral, didDiscoverServices error: Error?), peripheral(_ peripheral: CBPeripheral, didDiscoverCharacteristicsFor service: Service, error: Error?) we are able to scan and connect to BLE devices Findings: We were able to get the list of low-energy devices like Airpods, Earphones and Bluetooth music devices. But Not able to scan Bluetooth high-energy devices like PAX / Android Phones   Please suggest to us the approach to make the Android running devices listed through the Core Bluetooth library. Thanks & Regards
Posted Last updated
.
Post not yet marked as solved
1 Replies
345 Views
Hello Everyone, I am developing an IOS application for communicating with USB Flash Drive. For that I am going to use EAAccessory Framework. To be use EAAccessory Framework I need to mention protocol specification of USB Flash Drive (hardware) in info.plist file. Looking forward to know generic protocol specification which will enable IOS application to communicate with most or all USB flash drives.
Posted Last updated
.
Post not yet marked as solved
1 Replies
299 Views
I a macbook air 2020 m1 16Gb Ram and I'm having an annoying bug that started after i updated my mac to mac Sonoma 14.1. Whenever I connect an external display to my mac (hp e22 g4), mirror the screen and then start to watch a video the mac gets stuck. The keyboard doesn't respond, closing the lid doesn't help, only hard resetting the mac and causing to reboot seems to stop this. If I extend the display to the external monitor the bug doesn't occurs, it happen only when mirroring the screen. Tried different usb c to hdmi adapters, including high quality adapter, but it still happens. It didn't happened on older versions of mac os with the same adapter. Also, tried replacing the hdmi cable, but it doesn't seem to help. Can anyone help me with solving this issue? It's really annoying that I cant' mirror my mac's screen.
Posted
by mataniss.
Last updated
.
Post not yet marked as solved
1 Replies
469 Views
Hi, I have an AOC 27G2 27" 144hz monitor running windows 11 connected to my 2019 14" mb m1 pro, running Monterey 12.5.1. Whenever I connect the two via hdmi the screen on my external monitor disconnects or the screen freezes and I cannot scroll anymore. Should I try usb-c to display port? Like this: https://www.amazon.com.au/DisplayPort-CableCreation-Thunderbolt-32-4Gbps-Compatible/dp/B08BXPVPPQ Wondering if anyone has had this issue or has a solution, cheers.
Posted Last updated
.
Post not yet marked as solved
1 Replies
537 Views
I saw a similar post to this where the issue was fixed in the final iOS17 release, but I am still having a problem since my situation is slightly different. I am wondering if its a bug based on current behavior, but was hoping maybe someone knows if the issue is with my setup? I am trying to monitor an external USB camera's audio input using the new iOS17 external call for iPad, over bluetooth. func setupAudioSession() { let audioSession = AVAudioSession.sharedInstance() do { try audioSession.setCategory(.playAndRecord, mode: .default, options: [.allowBluetoothA2DP, .defaultToSpeaker] ) try audioSession.setActive(true) } catch { print("Failed to set up audio session: \(error)") } } When my execution order is: setupAudioSession() // code above // discover and connect the session AV inputs to the external USB // start an audio engine // connect audio engine output to a buffer queue and play // start the session My app does not allow routing to the headphones and directly switches to speaker. However if I change the order to this: setupAudioSession() // code above // discover and connect the session AV inputs to the external USB // start an audio engine // start the session --- !starting before connecting output! // connect audio engine output to a buffer queue and play The session stays connected to Bluetooth and plays over the headphones. However if I suspend the app and relaunch, I get switched back to speaker. I understand maybe the system is trying to prevent an audio feedback loop? But don't understand why launching the session early would get the desired behavior. Any help would be greatly appreciated.
Posted
by oddforms.
Last updated
.
Post not yet marked as solved
3 Replies
610 Views
I'd like to check whether there has been (or there will be) any iOS SDK framework or program that support developing a custom driver for our own hardware device via USB type C port, especially after the release of the new iPhone 15 with type C port supported. In addition, I'd like to understand how the app review process will work if we're releasing a Crypto Wallet application that utilizes the cold wallet hardware device, will it be necessary for us to send a set of hardware over to the Apple review team, or the app review can be arranged without the actual device?
Posted Last updated
.
Post not yet marked as solved
2 Replies
1.1k Views
On iOS 17.0.2 my bluetooth devices (CarPlay and earbuds) were performing at normal levels with all sound settings at default. In the gym, I like to max out my bluetooth earbuds. However, after updating to iOS 17.1 Beta 2 (21B5056e), my bluetooth earbuds set at max volume sounded medium. My first troubleshooting method was to check the sound settings... all setting (including accessibility) were left at the default inputs. To further troubleshoot, I tried other downloaded albums on my music library/playlists...all noticeably lower at max volume. I was thinking this might be related to my earbuds. However, when driving, I decided to play the same album in my 2021 GMC Sierra via CarPlay... I had to turn up the dash knob audio substantially higher to replicate what was considered loud (or rather "comfortably loud") in my truck. Apple tech supports only recommendation was to do a system restore and roll back to 17.0.2. Has anyone else tested music quality/sound over bluetooth before and after they updated from 17.0.2. to 17.1 Beta 1/2 ?
Posted
by domerdel.
Last updated
.