There is little consensus on whether the iOS interface Apple provides to shut off automatic gain control is actually implemented. Does anyone know definitively if it is possible to shut off AGC when recording audio on the iPad and, if the answer is yes, how?
if you are using iOS< 5...the answer is NO.
if you are using iOS>=5 on an iPad2...the answer is still NO. Not
if you are using iOS>=5 on iPhone 3GS, iPod(4th gen), iPad1 (1st gen) the answer seems to be YES.
ACG is turned off when the AudioSessionMode is changed to kAudioSessionMode_Measurement. Check the Audio Session Services Reference.
input gain can be controlled by:
1) Set your audioSession's mode to kAudioSessionMode_Measurement.
2) Be sure that the device you are using has input gain available by using the kAudioSessionProperty_InputGainAvailable property.
3) Set the property kAudioSessionProperty_InputGainScalar to your desired gain level (between 0 and 1.0)
*haven't gotten my hands on the newest iPad yet, so cant confirm.
Related
I'm working on an app that requires step counting.
There are several devices that don't support this feature (for example in my iPad mini 2, CMPedometer.isStepCountingAvailable() returns false).
Since the app heavily relies on the pedometer, I'd like to make it unavailable to download for unsupported devices.
I would expect to find a pedometer-related entry in the documentation of UIRequiredDeviceCapabilities, but there is none.
Is this possible in any way?
No, it is not possible to make an app unavailable for download on the basis of CMPedometer.isStepCountingAvailable(). The preferred method would be to display a notice to the user once downloaded, that their device does not support the required functionality.
If it is possible is it possible for iOS devices or just some? If so, which ones. If so, are there any resources / documentation where I find out more explicitly?
is it possible for apps to programmatically turn off the iPhone
No. There's no public API in iOS 9 (or any previous version) for switching the phone off.
are there any resources / documentation where I find out more explicitly?
The primary source for information like this is Apple's iOS documentation.
Short answer no. Longer answer, still no.
Is there a way to write an app's "Required device capabilities" such that the app runs only iPhone 6s and above (due to a requirement of force touch)?
You normally use the UIRequiredDeviceCapabilities key, which can require certain features to be present. However at this time it doesn't seem like 3D Touch has been added.
A large warning will have to suffice for now, while waiting for apple to add 3D touch as a thing you can require. Otherwise there might be some features only the new iPhones models have, such as the arm chip, you could require. I haven't looked into this though.
On apples page for documentation you can see available keys for the UIRequiredDeviceCapabilities, where 3D Touch doesn't seem to be present.
open https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW3
No, at this time it is not possible.
It is likely that Apple will introduce a new value to use with the UIRequiredDeviceCapabilities key.
Until that time, the best you can do is require one of (arm64, metal or opengles-3), and one of something like telephony or sms (until iPads get 3D Touch). This will at least restrict your app to the iPhone 5S and up.
And put a notice in the app description that your device requires 3D Touch.
Keep an eye on this document for all the possible device capability values:
https://developer.apple.com/library/ios/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html
Also, this is handy:
http://28byteslater.com/ios-compatibility/?exclude=&require=22,7,19,26#chart
I experience an unpleasant problem for which I can't really find a conclusive reason: if I reprogram my BLE112 module (BLEBee from Michael Kroll / seeedstudio), for some reason the settings (especially the UUID keys to peripherals) are not being updated.
This is very unpleasant since that almost makes it impossible to connect to the device via iOS / Xcode.
Any leads on how to solve this and what would cause this issue?
Note: I reprogram them using CC Debugger and BLEUpdate from Bluegiga. I'm sure the values are in fact being reprogrammed, but iOS seems to keep the old info at least for some time.
(iOS 8 / Xcode 6 beta)
Have you tried to reset the settings of your phone? This is a common problem with iOS. Once you connected to the e.g. original firmware of the BLEBee and change the services and characteristics, iOS will show you the cached ones. Try to initially turn off Bluetooth, kill you app, restart BT and start your app again.
If this does not help Reset the Settings of your Phone.
Hope this helps,
Michael.
I'm using the Deezer iOS SDK and almost everything is working well.
However, sometimes, when I request a song (doesn't matter which one), the readable value is 1 but the stream value is 0.
I checked on several devices (iPhone & iPad), with different iOS version (7.0.6 and 7.1.1) and different connectivity (Wifi or 3G).
I though that was because the account used was not a Premium account, but on my iPhone5S it's worked well when my iPad is lost.
I want to know if it's a problem with the account used, the device, the request or whatever it can be to solve it.
Thanks,
The readable property on a track means that you could potentially this track. This readable property depends on a lot of parameters (country, user status...).
One thing is sure though, if you do not have a premium account, you normally cannot have the stream property set.
Hope that helps.
Guillaume.