Can I pick which meta data to use from photos to be able to use ALAssetsLibrary with location services off? - iphone

I found that using ALAssetsLibrary gives an error when location services are disabled or not granted to my app.
I am using enumerateGroupsWithTypes:usingBlock:failureBlock: and the documentation says:
Special Considerations
This method will fail with error ALAssetsLibraryAccessGloballyDeniedError if the user has not enabled Location Services (in Settings > General).
Is it possible to fine grain which meta data I am going to use from the photos, so I can still get them from the library? I actually don't need the location where the photo was taken.

No it's not possible (yet? it's not possible in iOS 5.1)
The only way to access photos in the library without having the location warning is to present a UIImagePickerController, but obviously that doesn't help much for most projects where you need to display a custom gallery, or access more than one picture at a time.

We have found that there is not location permission request in iOS 6. Maybe iOS 6 has other privacy control on Photos. So you don't need to asking location permission. Our solution is to check the [[UIDevice currentDevice]systemVersion] and only using ALAssetsLibrary when iOS >= 6.

Related

If I use UIWebview in my app, will app store reject it since it has been officially deprecated?

I made an AR app which embedded the UIWebView to display web content on an SCNPlane. I can not use the WKWebView because it does not work well with AR. On the contrary, UIWebView works nice.
If I upload my app into the app store, will my app get rejected?
Also, I notice that on the UIWebView's official document page, there is an certain alert says "An iOS app linked on or after iOS 10.0 must include in its Info.plist file the usage description keys for the types of data it needs to access or it will crash." Do i need to add certain specific description key for the UIWebView?
Thanks in advance!
No. Deprecated doesn't mean unavailable or disallowed; otherwise those methods would simply be removed from the API.Deprecation is a way of letting you know that you should start transitioning your existing codebase.
Deprecated methods may be more primitive and dangerous than newer versions, may not take into account all current OS features.

Get Call log details from NonJailbreakenIPhone

Is it possible to get call log details (Received, Dailed and missed) from NonJailbreakenIPhone?
I follow this link http://iosstuff.wordpress.com/2011/08/19/accessing-iphone-call-history/
but i didn't get any thing.
If possible please provide some code or steps.
No, this is impossible because of the way apps are sandboxed on iOS. While it might have been possible in previous iOS versions, iOS 5+ have locked down file system access to only within your own app's bundle.

ALAssetsLibrary and Location Services in iOS 6

I'm in the process of upgrading one of my apps to support iOS6 and iPhone5. In the previous version, I had to prompt the user to enable Location Services in order to display photos using the ALAssetsLibrary. I've noticed that in iOS 6, I can disable location services and it still displays all images correctly. Is this something that has changed in iOS6. The documentation states that you still need Location Services enabled but the documentation also states that it's for iOS4 and above. I can't find any mention regarding iOS6 specifically.
The change is (more or less) documented in the iOS SDK Release Notes for iOS 6:
In iOS 6, there are improved privacy controls for Calendar, Reminders,
Contacts, and Photos. Users will see access dialogs when an app tries
to access any of those data types. The user can switch access on and
off in Settings > Privacy.
Also, the ALAssetsLibrary has a new method authorizationStatus, which is available since iOS 6.
In iOS 5, there was no privacy setting for Photos, and the user had to allow access to Location Services because a photo might contain location data. This was (I think) annoying and confusing, and I am glad that it is fixed in iOS 6.

How to get in-app call information

How can you get information about the call(e.g. caller's and calling numbers(or source and destination phone numbers),call date and call duration etc.), which you make from your app using openURL method in iOS sdk? Any possible way? Any help is appreciated. Thanks.
call log is not accessible via apple documented apis but if you do sm google, you'll find that there are ways to access this info (iOS dependent - means iOS4 's method/api is different than iOS 3) using which you can access this log but then you won't be able to post the app on applestore.
In iOS, you cannot access any other App's data from your App

Is there a way to re-trigger asking the user if the iPhone can use their current location?

For some reason, my iPhone app doesn't ask the user for permission to use their current location when the app is installed from the App Store. Because of this, my app's location-based functionality doesn't work. I'd like to catch the error and re-trigger the functionality that asks the user for permission to use their current location.
Is there a way to re-trigger asking the user if the iPhone can use their current location?
No, this is a bug in iOS 4.1, you'll just have to wait til iOS 4.2 is out and re-release your app.
They most likely have location services completely turned off in Settings or even have it off just for your application.
You can use:
[CLLocationManager locationServicesEnabled]
to check this and alert the user or track it for your own purposes. Core Location should ask the user to enable Location Services in the case of the first scenario. If the second scenario is happening, then there is nothing you can do except tell the user to turn on location services for your app.
There is really nothing you can do programmatically outside of the CLLocationManager handling all of this for you.