Hello I'm creating application for android no mater what kind but I need to store some information that information are so important because it's kind of result of registration and future settings for application, and now in managing application there is a button which can clear data, is there any way to disable it? I found some threads in internet where people writing that no it's impossible.
Or maybe if I'll use internal storage to save that information if the user will press "clear data" it'll also delete files in internal storage or not?
I can also use IMEI to identify phone user but what if the IMEI number will be unavailable?
I really need help any idea how I can do it?
go for sqlite database
you can use SqliteOpenHelper class for storing and retreving data
Related
I know about asyncStorage. That's not what i need. I want to save some data locally, so if app will be completely deleted and installed again, it should gain access to the stored data. AsyncStorage data being removed along with app itself.
I think you must use a FileSystem to save files in phone storage. Take a look at this library to handle files: https://github.com/johanneslumpe/react-native-fs. Hope it helps.
I dont think anything an app creates can exist after app deletion. If you think about it, why would you want disk space being used up by an app you deleted. Only option I can think of is storing in the cloud: Google Drive, DropBox, etc. or a server you run and user data connected to an account system.
My experience is with iOS, maybe Android has some option for what you want.
I understand that Soundhound on Android doesn't currently store favorites on the cloud. They must therefore be on the local storage somewhere.
Does anyone know a good way to access the favorites programmatically ?
I know the user can email his favorites but I would like to access them through my code without user interaction.
Thanks!
Local app storage is generally restricted. One application can not access the local storage of another's without explicit permission of some sort. Either the application (Soundhound) has to set access to global (unlikely) or explicitly expose the data via some sort of API (also extremely unlikely). I would expect this to not be reasonably possible (without root permissions).
It's discouraging to find a -1 vote on the first question I asked here but here's the answer to my own question anyways...
As of Android 4.2.2, the Soundhound data is stored in this Sqlite3 DB:
/data/data/com.melodis.midomiMusicIdentifier.freemium/databases/bookmarks.db
There's no content provider for the bookmarks so of course using the DB isn't a good idea since its subject to change in any future release of the app.
Is is possible to restrict user, from accessing any application data, like SQLite db file, shared pref. file..etc. I have restricted it to certain level. But still, user can access these file, if he boots the device as root user, or super user.
What needs to be done, to restrict the user from accessing my secure application data?
I saw a blog on this somewhere (I'll get the link if I can find it), but basically, there's nothing you can do. The blog author says that whatever data you put on a user's device is now theirs, and if they want at it bad enough, they're going to get it. A root user has access to everything on the device. That's what rooting is supposed to do.
The only way to really protect your data is to pull it from a secured server and not cache it, which is the only way you should be doing it, if you want to keep something from your user.
Found the blog post, suitably titled, "It's the User's Data, Dammit."
http://commonsware.com/blog/2012/05/01/its-the-users-data-dammit.html
You should really subscribe to this guy's blog. He's got some good stuff on there. (No, I'm not plugging. I wish I could be this guy.)
If the phone is rooted there is little you can do to stop access to files stored on the device.
The best you can do is encrypt the data written to the file or the fields in the database using a key that the user has to enter every time they start the app.
I am working on an android application which requires a database to store the value from the app.
My requirement is that I need the database not be cleared when the clear data option in the app is done.
Anyone please suggest me the location where the database can be stored so that is not deleted when clear data option is used.
I assume you mean the "Clear Data" from the Preferences->Apps menu.
I recommend you review your reasons for preventing this.
Hitting "Clear Data" would allow the user to reset the application as when newly installed, which really means recover from possible application errors you haven't thought about.
You can store the data into mysql database and use server php to get data from android
Try this link
Does storing on SD Card works for you?
Hi all: I need to know if there is any way to make Android persistent data that the user can not delete, because if I use SharedPreferences or databases, it is possible that the user can delete all data from the Android menu, Settings - > applications -> Manage Applications -> "application name" -> Clear Data.
If I keep in the external memory also exist the possibility that the user delete or change memory device.
As always, thank you very much and sorry for my English.
Please check out Swarm's Cloud Data system. It provides a system extremely simple API (very similar to SharedPreferences) for set/get operations. Everything is saved to the cloud, and persists per user account.
This is not possible, your application does not have access to such kind of functionality. The only option you have... is storing data into a remote server.
Store it on your cloud app server.
I agree, If you do not want your users to be able to erase your data, you need to store it outside of the device, and access it via the internet.
You can use your own server for this, alternatively, I have used the Skiller SDK for my multiplayer game and noticed that they provide a simple data storage functionality (which frankly, i didn't use) but it seems like it would answers your needs.
Good luck.