I want to implement a SharedPreferences kind of thing in my BlackBerry application similar to what is available in Android. What i want to do is store the login details after authenticating them so that the user is not required to login again and again.
Use PersistentStore class from RIM SDK to store data and share it among different applications when necessary.
You can use both PersistenStore and RuntimeStore to save data over the BB device. The main difference is that the persistent store will save your data even after a phone reset. But the runtime store will erase them after resetting the device. You can use the one that you see better for usage
Related
I am developing an application for security purpose which has 1 requirement as "Wipe out iPhone or i pad data completely if device is stolen".
While doing search for this functionality, I came across one application "Find My iPhone" here which supports this feature of "remotely wipe out all data".
(http://www.howtogeek.com/77158/how-to-remotely-lock-or-wipe-your-ios-5-device/)
But i want to this functionality through programmatically in my app.Can someone give me a solution for this problem?
And is it possible to do this functionality through programmatically?
You cannot completely wipe a standard iPhone's data from an app. The app runs in a sandbox environment so you cannot access data from other apps or iOS itself meaning that you cannot wipe it. That being said, you could wipe photos and contacts programmatically as long as the user grants you access to contacts and photos.
There is NO WAY that Apple would let programmers wipe data remotely for the entire device.
Instead of doing that, maybe you should have functionality in your app where if server returns a particular flag, you would delete all the data stored locally on your app, by you (like login details for your app, personal data stored in Documents). I suggest that, because I've done it before.
In iOS, is it possible for an app to get the information about how long the user uses another app?
In iOS each app runs in its own sandbox and cannot see data from other apps, even apps from the same publisher. An app can access special shared data, like photos from the album or contact data, but it is not possible for an app to directly access information like you have mentioned.
No, there isn't. There is no way to fetch data from another app, this is part of the App Sandboxing principle.
My app need to take backup of user's iPhone's almost entire data to iCloud.
Can we access the call log, SMS, MMS etc. databases of iPhone just as iCloud does internally while backing up programmatically?
Is there some means to give user option list for data he wants to backup to iCloud in our app and backup only that data instead of all data programmatically?
Thanks
Assuming that you are referring to a non-jail broken device then in a word, no. An app cannot access data outside of its own sandbox
Apple can't allow to access and change SMS and log associated database. If you have jailbreak iPhone then you can access database using following path.
/var/mobile/Library/SMS/sms.db
For development level you can access it but your application wan't get approve from iTune store.
It is not possible to get SMS/Call Log/MMS detail.
Your application only access those data which can be supplies by Apple's public API.
Your application can not access data outside of Sandbox other than public API.
Yes, if your device is jail-broken and you can use hack like direct url to database.
But if you do so your application will never approve by App Store.
Please read App Review Guidelines
I an building my first iOS application and I need to store the user registration details of the user using the application. The details include his mobile number and a unique id( uuid ) which I use to contact with the backend. It would be great if I could get a suggestion on where to store this user details.
Should I be storing this in the NSUserDefaults or should I be using Keychains to store this data or even may be a using a user model in the database ( I would need a database in any case to store a few other details ). Just to add on, I also would like to perform a few validations like if the mobile number is of proper format and so on before I could actually save it. Also can any one please suggest on the security aspects of different storage mechanisms possible here?
Any help on this would be much appreciated.
The most secure way would be to use keychain services as the data is encrypted but in your scenario it seems a bit over kill. I would recommend either just using NSUserDefaults or an sqlite database I wouldn't really recommend storing in a plist as this can be accessed really easily.
But this all depends on the data you are getting, if it was just uuid and mobile number then NSUserDefaults would do probably, whereas if you were getting usernames and passwords and other personal data I would looking a mix of keychain and sqlite database.
Also you could use coredata file to store user data but seems a bit over kill as well for for such little data.
Just a little note you are actually not allowed to get the iPhones mobile phone number programmatically, getting this would use Private APIs that Apple would reject your app for using.
2.5 Apps that use non-public APIs will be rejected
So you would have to ask he user for this.
Database selection is totally depend on the architecture and security, if you just need to store the few information like login details and some field then Keychain for login details and plist for data is best option, but if your application also working with services and fetching and saving lots of data and continuously updating it then a serious database structure required. In that scenario core data and sqlite both are good option depends on your preference
Following ways you can save details.
In NSUserDefaults
In coredata file.
In sqlite database
Plist file.(Not recommended)
You can save data at server site using webservice.
Any one of these you can use according to your requirement and data.
Cheers :)
If you store information on the UserDefaults, a jailbroken device can see the information you have stored, it is a plist after all. If you are going to keep sensitive data on your device, user defaults itself is not a good option. Possible alternatives:
Use keychain: Keychain is a tool to keep usernames & passwords securely on a device; so you may need to find a way to convert all the info you have mentioned ( a dict, I presume? ) into NSData and put into/get from the keychain but it's been explained on other threads. Additionally, keep in mind that when the app is deleted, keychain data will persist on the device.
UserDefaults & encrpytion: If you can encrypt the data yourself, than using UserDefaults might be a better option. Its more straightforward than keychain and it will be deleted if you delete the app from the device (which may be the thing you want, or not. It depends)
I want to access score of user 'A' that he/she secure in Game_Application_1 within Game_Application_2 when user 'B' playing Game_Application_2.
Assuming user A given permission to access thier score.
Both Application developed by different developer.
Please let me know it is possible or not and if possible then how?
Thank you.
This totally depends, if you developing both app then yes. Storing the scores in the keychain can make it accessible to both app.
If you are you are not the developer of both apps then probably no, unless you have access to some kind of API that could tell you the score. Since you can not access data from other app the developers of the other should provide an API to allow you access the score. This can be web based of even using an App URL Scheme.
If both apps are yours you can easily use iCloud's key-value Store to share information.
See Apple's Key-Value Data in iCloud.
See NSHipster's iCloud article.
In ios application you can't access data from out side the application bundle. If you want any information or data from out side the application bundle then you should use API (web services) which contain those information.