I didn’t see a maximum range but the online docs list:
NI works best when the peer devices are:
Within nine meters of each other.
In portrait orientation.
Facing each other with their back camera.
NI detects a nearby peer device when it appears within NI’s line of sight
https://developer.apple.com/documentation/nearbyinteraction/initiating_and_maintaining_a_session
Post
Replies
Boosts
Views
Activity
In iOS/iPadOS 14 and watchOS 7, your user can send a brief audio clip through your SiriKit message app by invoking Siri with a "send audio with app" and then
@available(iOS 14.0, *)
optional func resolveOutgoingMessageType(for intent: INSendMessageIntent, with completion: @escaping (INOutgoingMessageTypeResolutionResult) -> Void)
will be called. In that callback make sure to call
completion(.success(with: .outgoingMessageAudio))
or an appropriate response.
Much thanks to the WWDC 2020 SiriKit lab engineers for literally answering this question in person, virtually
This is an App Store (App Connect) availability issue in that you want to change your bundle id to a different type of product which is not allowed. You'll have to retire your old product and create a new product... at least that was my experience a few years ago.
It's probably best to test with some iPhone 11s and the sample app to ensure your use case is a good fit but the documentation states:
NI works best when the peer devices are:
Within nine meters of each other.
In portrait orientation.
Facing each other with their back camera.
NI detects a nearby peer device when it appears within NI’s line of sight
https://developer.apple.com/documentation/nearbyinteraction/initiating_and_maintaining_a_session
https://developer.apple.com/documentation/networkextension/local_push_connectivity/receiving_voice_and_text_communications_on_a_local_network
I cross posted and a DTS engineer responded that they are working on it:
https://developer.apple.com/forums/thread/651641
It's a new privacy feature of iOS 14 as described in the WWDC 2020 "Support local network privacy in your app" session:
Apps now trigger a prompt the first time they try to interact with the local network. Until permission is granted all local network communication is blocked. The prompt includes a usage description that you specify in your app's info.plist. Apps that haven't updated to iOS 14 will show default reason text. If you notice a prompt that you don't expect for your app, you might be using a third party framework that accesses the local network. https://developer.apple.com/videos/play/wwdc2020/10110/
Notifications have 2 components, the Service Extension which you described and more importantly-- if I understand what you're trying to do-- UNNotificationCenterDelegate which resides in your containing app.
In the method willPresentNotification return a value such as
[UNNotificationPresentationOptions(rawValue: 0)]
in its completion handler
Additionally, my previous comment is the solution for a foreground application and that the Swift value:
UNNotificationPresentationOptions(rawValue: 0)
equates to
UNNotificationPresentationOptionNone
in Objective-C
https://developer.apple.com/documentation/usernotifications/unnotificationpresentationoptionnone?language=objc
assuming your code is correct and you enabled the notification capabilities, are you running on a device or in the simulator?
On device testing is the guaranteed way to test remote notifications and using the new-ish Xcode ability to test a notification with the simulator is helpful as you can see but may not be as complete as on device testing.
You can specify the notification sound name in the aps payload:
"sound": "default"
or in the UNMutableNotificationContent of the Notification Service Extension:
content.sound = UNNotificationSound.default
I don't believe that mp3 is a valid sound format or that a URL is accepted.
Hi and thanks for your future contributions. These forums are for app developers to ask programming questions and Apple engineers might not see your comments. For iOS as well as all of Apple's products and services, including any security or privacy issues that you find, it's best to let Apple know directly:
https://www.apple.com/feedback/
If you want to ask questions from other users, it's best to post to the user forums:
https://discussions.apple.com/welcome
Other forums exist for the betas, and a quick internet search might provide better suggestions.
iPhones sometimes switch from WiFi to Mobile and then the app communication is broken. Is there a solution for this? Can this been prevented?
Not programmatically from an app running on an iPhone. If you are targeting the enterprise, you can explore MDM solutions to restrict communications but you will have surmount other hurdles... so a solution redesign is probably in order and you'll have to seriously consider abandoning your current architecture and implementation.
Just as a follow up to my previous response... your tags list multiplier connectivity and the APIs in that framework were built prior to the Network.framework. While your app can't programmatically prevent the device from using cellular, the Network.framework does provide some flexibility to your app if you are able to redesign to restrict itself when it does not have the correct interface:
https://developer.apple.com/documentation/network/nwparameters/2998704-prohibitedinterfaces
prohibitedInterfaceTypes
A list of interface types that connections, listeners, and browsers will not use.
requiredInterfaceType
An interface type to require on connections and listeners.