IOS Camera/Microphone constant usage message - ios

I am having trouble understanding the description from apple to access/use the camera in Ios devices.
They wrote
iOS requires that your app provide static messages to display to the
user when the system asks for camera or microphone permission: If your
app uses device camera [...]
(Source)
So do I always need to display a symbol when using the camera? Like a recording flashing?
Or does the "static message" refers the first request for accessing the camera?
Any help appreciated.

The documentation you are referencing is referring to the key/values that you add to your Info.plist that get shown to users when requesting permission to access the calendar or microphone. This presentation is done automatically by the system when you ask for permission to access those devices (via requestAccess for example -- https://developer.apple.com/documentation/avfoundation/avcapturedevice/1624584-requestaccess). The alert gets displayed when the app asks the user for permission and then does not get shown again.
You don't need to "display a symbol when using the camera" in any version of iOS. However, in iOS 14, you will see indicator dots in the status bar (https://support.apple.com/en-us/HT211876) that the system adds when these resources are being used.

Related

iOS Permission - Ideal Microphone Permission Dialog Text

I have a chat app, and that has an upload function in which the user can upload photos and videos from the gallery or capture one. On iOS, to record video, one needs microphone permission separately (why? - isn't it obvious?). Now whenever I'm trying to submit to App Store, my binary is being rejected because they say:
We noticed that your app requests the user’s consent to access their microphone but does not clarify the use of the microphone in the permission modal alert.
My current permission modal alert text (after several changes) is
Enable microphone access so that you can be heard in the video
And even this latest one was rejected. Is there a better text that I can provide which may be perceived as clearer and my app may pass the review?
Try an easy statement like :
"This app requires the access to Microphone to record your voice memo."
I have this statement in one of my app and it was accepted.
You can use either of these:
1. "We need access to your microphone for adding sounds and uploading them".
2. "We need access to your microphone so that you can add sounds and upload them after choosing".
3. " 'Your ProductName/AppName' uses your microphone to capture audio which is shared with other participants".
4. "We need access to your microphone so that you can record/hear voice messages".
Just simply define the reason why your app is using microphone, i think Fourth one might help you.

How do apps access your username / device name without the user explicitly providing it? (Example in description)

For example, the VLC app was able to somehow get my username (or device name?) without me ever giving it this info. Here is a screenshot that shows the VLC app greeting me by name in the app switcher. How is this possible if I never gave the app this information? Which API could it be using to obtain this info?
This is possible due to UIDevice class. It doesn't require permissions in order to get some basic system information, after all it's just your name (if you were to ask for location/health data/contacts/etc that would be something else and thus user permission is mandatory).
For more information refer to official documentation here https://developer.apple.com/documentation/uikit/uidevice
That's not VLC but rather iOS.
iOS suggests apps based on time and location of your device. The name is taken from your iCloud Account. VLC is not aware of that banner.

permission to record audio on iOS

I am writing an app that records an audio file from the user. I noticed that when other apps that do something similar are installed, a window is displayed, warning the user that the app wants to access the microphone, and the user has to explicit give permission to the app to do so.
Does Qt have any API that tells iOS about the intention of the app to access certain devices, which would cause that warning window to be displayed?
Thanks!
You don't have to handle it manually. iOS will automatically ask for permission if the user didn't accept it before.
The very first time your app will need microphone, an alert will be displayed. If the user allows it, he will never see the alert again. If he refuses, he will have to turn it ON manually in iOS settings. Nevertheless, there's maybe a way to handle a previous refusing in-app.

"Access the Camera" Message Popup Once Users Launch the App

My iOS app has a function that would access the camera, so every time users access that function, the app would popup a message (see attached image), I think this is nice.
But recently I found that this prompt would popup once users launch the app, I don't like this, how can I change it back? Thanks!
Check if are you creating object of AVCaptureDeviceInput?
As per Apple doc "The first time you create any AVCaptureDeviceInput objects for a media type that requires permission, the system automatically displays an alert to request recording permission."
If thats the case just create only when you are going to use.

Is it possible to customize the Bluetooth message when the alert first show up in iOS

I am writing an app which uses bluetooth to send data. The first time the call is made an alert pops which says
"app name" would like to make data available to nearby bluetooth devices even when you're not using the app.
Is there a way to customize this similar to the the Location services message?
There is a NSBluetoothPeripheralUsageDescription key to store the purpose string in Info.plist to describe the reason that the app uses Bluetooth. When the system prompts the user to allow usage, this string is displayed as part of the dialog box

Resources