I'm making an app, which I will distribute via playstore. However, though the app can be installed by anyone in the world, it can only run for selected users who I know.
Below are the possible ways I have figured out,
Check the account E-Mail ids on the phone and if that matches with the one's saved within the app code.
Check the mobile number on the phone and see if that matches with the one's saved within the app code.
When the app runs for the first time, it will send an SMS to my phone. I will reply to that SMS either saying YES or NO. If I reply YES then only the app will run for that user, else it will not.
I would like your feedback on these mechanisms. If there are other ways let me know about that too.
Thanks...
I think your best options are:
Make users log-in using an e-mail and a password (you could ask the user to register and if he uses an e-mail that is known to you, send a password to that e-mail [make the user change it later though])
Beta testing - This allow you to choose wich users will be able to install your app by creating a community on Google+ to beta test your app.
Maybe both.
Related
I will publish paid app for android and ios. I want that one account can only install and run on one device. Otherwise I want to block the app on first device. Is there any way to do this?
Note: I know there is a lvl for Google Play. But I am not sure, it does this exactly. Sorry for my english.
What you seem to need to do, is to get the device_ID and pair it with the account.That shouldn't be hard.
You get the device ID when your customer registers ,than at login you check the login credentials AND the device ID...
Here's pretty much all you need regarding the device ID (not the login,I trust you can handle it yourself)
How to get unique device hardware id in Android?
Scenario
The user get only the first time free credits in the app. After that we want to do fraud prevention. We need to check if the user and/or the device have not installed the application before.
We can accept the risk of a factory reset or rooted devices
What I tried already
Listen to Intent.ACTION_PACKAGE_FIRST_LAUNCH. After reading I understand that this event is only send to the Play store and can't be used in any other app.
Check the application package info for the field "firstInstallTime", this is reset when the user removed the application and do a install.
Android Backup Service, but the user can stop the backup and reset data, so this is at no use.
App licensing looks like a promise solution to detect if the user have already installed the app. But with limitations the following is described: "You can implement licensing controls for a free app, but only if you're using the service to provide APK expansion files." Do we need to make a small APK expension file, just to verify the license?"
make a fingerprint of the mac address, imei, android id and some other stuff. But would this make the scans of Google play violating? I don't use it for advertising, but i'm afraid they think we violate the google play policy.
how you can help me
Can you help me to choose a good direction to solve this issue and maybe give some better methods to do this verification.
Factory reset, second-hand phones and users with multiple devices will be your main problems.
The only way to uniquely identify a user is an authentication through login/password or OpenId account.
Hey there if you are managing user information at the your server than what you can do is take the IMEI number of the device and send it to your server. It will record the information of the user. Now if he/she uninstall and install app again your app will again send IMEI number at server now you can check the IMEI already present or not, If present then user have already installed your application, more over you can manage same thing from the login ID, but that can be faked by the user. More over it will not violate any thing. User can see while installing in the permissions that your app will get the system information.
I like to implement Refer a Friend functionality in my mobile application (Android and iPhone).
User "A" will refer my mobile contacts via SMS (Referred user "B"). And if "B" install my referred application or the referred content, "A" will earn some reward points.
This is my scenario. Suggest me.
Thanks in advance.
I used Google Analytics Campaign to implement this scenario.
Another way to do this is to generate unique links for all your users, that they can then send out to their contacts.
Let's say User A shares a link with User B. When User B clicks on the link to get your app, rather than immediately redirecting to the App Store, you can make a call to your backend, with the goal being to create a digital fingerprint. Your backend can record the digital fingerprint then do a 301, 304 or 307 redirect to the App Store.
To create the digital fingerprint, your backend can then make a browser-based digital fingerprint including:
1. IP address
2. OS
3. OS version
(These can be grabbed from the request headers).
--
Later when the user opens your app, you should send up the same 3 things, IP, OS and OS version. If they match and are close time-wise, you know that they came from this click from User A's link! Then you can give User A a reward and thank him for getting User B to download the app. This is what we do at Branch Metrics, where I work. We also leverage a browser cookie that works across apps, so that we don't need to rely on fingerprinting except for the very first time we see a user in any of our apps.
You should also think about preventing fraud. You should prevent User A from referring himself, you should prevent User A from referring User B over and over, etc. This is something we work on everyday as well. Definitely spend time on fraud prevention unless you really don't care about giving out duplicate rewards to the same user. Please leave a comment if you'd like more info.
I want to create an app that can list all installed app that are downloaded using particular email address.
For E.g
testplaylist#gmail.com is registered in my phone and I have installed 3 apps
Angry bird
Mighty Text
SMS pro
I would like to get this list of app on opening my app? I am not sure where to start with? Something similar to what https://play.google.com/apps - has after you login.
Is this possible?
Thanks!
Is this possible?
Hopefully not, unless you wish to get arrested for stealing users' Google account passwords. There certainly is no public API anywhere for you to peek at what other people have installed, for obvious privacy and security reasons.
I have an app that creates an account for a web app, which is basically sending and receiving SMS messages from the web. This is how it works (not released yet, nearing the end of the first-release features I had planned):
The user purchases the app.
The user enters their name, email, and password.
The account is created on the server-end, and the final view is shown telling the user where to access the web app.
The background processes are opened (C2DM and ContentObserver for SMS).
All goes well. The android part of this app all works flawlessly, but I'm scared of people making multiple accounts from one purchase. How could I stop this from happening? I am clueless when it comes to this subject. First of all, when the final view is shown, a user could just hit back and then recreate another account. How can I prevent them from going to that form ever again? I am thinking I can just set a SharedPreference, but then all the user has to do to make another account is uninstall the app and then reinstall it, and bam another account is made.
I need a way, so once the user registers for the first time, there is in no possible way they can register again, on that specific phone (or specific Google account). Is there any real way to accomplish this? Any help is appreciated, I am stuck when it comes to this topic.
Since SIM identification functions (getSimSerialNumber) return null on CDMA devices and *ANDROID_ID* is said to be the same value on CDMA devices; with addition of tablets which do not have either of them, I highly suggest implementing your own unique identifier in your database and matching it with user's Google Account.
However, since a poweruser can always reset their app data storage and clear their identification from device (thus making your app session on device brand new on app launch) this approach has it's caveats.
You may want to check this blogpost for ideas about generating your unique id
http://android-developers.blogspot.com/2011/03/identifying-app-installations.html
I would make it a check on the server side.
Every device has a unique identifier. If you save this on the webserver side during the account creation, you check whether or not an account has already been made on this device. Also add the same check for the Google ID, just in case.
String android_id = Secure.getString(getBaseContext().getContentResolver(),
Secure.ANDROID_ID);
Might be worth a try. Your safest bet will always be something on the server side, since the device side is easily tempered with if people really wanted to.