I need to be able to prevent the user from using my app until I allow him. The idea is that the app should be available for download but the user should only see activation screen when he launches it.
Then he has to request an activation key through email and use that key to unlock the app.
Is there a way to achieve something like this in Play Store and is it allowed?
I also don't like this idea but its my client's wish..
Note to moderators: I posted a similar question for the Apple Store but I want to keep both threads separated so please don't consider this as spam.
Google Play does not have such a feature out of the box.
I can however, think of 3 ways you can get it work. I am speaking strictly for the Android platform though.
You can design you app in such a way that the first screen should ask the user to get an Activation Code / Enter an Activation Code.
After the above, you can either store the Activation Code in a Preference File and check the value for its validity and start the application only if it matches / is valid.
Store the Activation Code in a Database and again, check the value and its validity and start the app if it matches / is valid.
Provide a couple of features and integrate Google Play In-app Billing and let the user pay a one-time fee to activate and enable all functions in the app.
These are the things I can think of at the top of my mind. Hope this helps.
No, There's no way to achieve this. You will have to create a functionality within your application.What you can do is make the user enter an activation key, if the activation key is correct make the user go to the next screen else don't let the user.
Thats something you would have to implement in your app. If there is some payment involved in getting the registration key then the solution is clearly against the play store rules.
i use similar system on my application. When user open the app first time. I ask for promotion code if this promoition code is true (i check it from back end service) user can use app for 3 months free. After this period end, app ask user to buy subsciription. You can do it using a backend service with interact a database.
Related
I'm working on an Android app where a user must be 18 years or older to apply.
If there will be people under 18, the app would have negative public view which I do not want to deal with.
Is it somehow possible to be sure that my users are older than 17? Is there any service which could possibly accomplish this?
Ideal fictional solution: in my registration form the user writes his/her id number and I would check if he/she is old enough with fictional service.
One not very good solution which I found. There is an app called Muzmatch. It is dating app for Arabs. When the user register he have to use device camera to take picture of himself and send it to server.
I can do the same in my app and check if the user seems old enough but I think it's stupid idea.
Yes this is possible through the Google Play content rating system.
Check out the link: https://support.google.com/googleplay/android-developer/answer/188189?hl=en-GB
Scroll down to the Take your app’s rating questionnaire section and it'll run you through the steps to apply an age rating to your app.
In addition to this, maybe you could create a free in app purchase, that the user will have to buy when first entering the app. They would then need either a password or finger print in order to pay via Google Play.
Im developing an android application for the first time (no prior experience whit coding....). Mainly the app is going to be used at work as a tool for service technicians. The app is almost ready for field testing, but there is one thing i need the app to do before that. I need the app to force the user to log in every time its opened. This is because some of the info on the app is confidential, and only people that currently works for the company is allowed to have this info. Whit firebase i can then block the users that leave the company, or users that are not verified. Currently the users sign in whit google and they stay signed in until they clear the app data or delete it.
I have looked far and wide for the answer to this, but i have only come across different use of timers.
If anyone has a better solution to this "safety" issue, im open to anything.
If you are using Google Sign-In for authentication, there is no out of the box support for forcing your user to authenticate with Google every time they use your app.
This makes sense, because the user is still authed with Google on your phone. A login system only authenticates the user; it doesn't inherently protect data stored on the device. As long as Google has a valid access token, the user won't have to type a username and password again (and simply clicking "login with Google" again doesn't really provide extra protection here).
If your primary concern is blocking access to users who have left the company, you should be covered if you are using Google Apps for your company. If you disable the user's account, their access tokens should become invalid. Google Apps admins can also manually revoke access to specific apps for specific users.
If you don't use Google Apps (e.g. your users are using #gmail.com accounts or accounts from a domain outside fo your control), you might want to consider implementing a list of users allowed to access the application, and verify the current user has access by checking that list via an API call on launch.
If the goal is really protecting the confidential information in the application, you might want to take an approach similar to Android Pay in which you require your user to set and enter a PIN number to access the application. As an added benefit, you can then use that PIN to encrypt any confidential data you are storing locally.
I will suggest you take a look into shared preferences and every time when the user is back into the app you send them to the login activity.
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 have incorporated the newer google play game services into my app, and I can see that upon start up of my app, there is an automatic sign in. I was wondering if this could be disabled as I would like to give that option to the user. I have searched the code provided by BaseGameUtils, but I cant see any sign in functions being called anywhere.
Any help would be appreciated!
Thanks :)
As per this issue, auto sign on is the recommended pattern as stated in their best practices video. As they point out in the FAQ (questions 4 and 5):
[4] Why is GameHelper/BaseGameActivity attempting to sign in on
application startup?
The default behavior of BaseGameActivity and GameHelper is to show the user
the sign-in flow (consent dialogs, etc) as soon as your application starts.
Naturally, once the user signs in for the first time, they won't see the
consent flow again, so it will be a seamless experience. It is important
for the user to sign in as early as possible so your application can take
advantage of the Google Play Games API right away (for example, saving the
user's progress using Cloud Save, unlocking achievements, etc). If the user
cancels the sign-in flow, BaseGameAcitivity/GameHelper will remember that
cancellation. If the total number of cancellations reaches a predefined
maximum (by default, 3), the user will no longer be prompted to sign in on
application startup. If that happens, they can still sign in by clicking
your application's Sign In button, if you provide one.
[5] I don't like the new "auto sign in" feature of GameHelper. How can
I disable it?
To disable this feature and return to the old behavior, you can edit
GameHelper.java and set the DEFAULT_MAX_SIGN_IN_ATTEMPTS constant to 0, or
call GameHelper.setMaxAutoSignInAttempts(0) at runtime, before calling
GameHelper.setup() (or, correspondingly, from your Activity's onCreate
method).
Yes it is possible. I know it is an old question, but I was searching for an answer and I couldn't find easily (Thanks Google). This question pops up the first, so from another question, the answer is to use getGameHelper().setMaxAutoSignInAttempts(0);. As mentioned here.
I would like to use in-app billing in my android application (instead of creation 2 versions of application - free and pro). If user paid, then additional options in Preferences should be available.
My application synchronizes data with website (not my).
Each time synchronization happens, I would like to check if user paid or not.
How should I do it?
I think the easiest means for you would be to use Managed purchase. More on it is at http://developer.android.com/guide/market/billing/billing_admin.html#billing-purchase-type
The "manage by user account" purchase
type is useful if you are selling
items such as game levels or
application features. These items are
not transient and usually need to be
restored whenever a user reinstalls
your application, wipes the data on
their device, or installs your
application on a new device.
Update: website and API updated refer this now https://developer.android.com/google/play/billing/api.html
There are to many ways to do that, i will try and give you some of the most used
what about user accounts? can your application support users? if it does, its practically solved with 1 user per 1 account. just add a flag to your DB for each user. this is the most secure way, its very easy to know if someone is stealing from you thats why all MMO's (like WOW) use this type of check. you can easily know if theres more then one user on an account as well
the downside is that it requires more processing and some support is case someone's account gets stolen or other user support of that kind.
you can save a sort of key inside your application. and some other key on the server. if the key matches (either 1 to 1 or after some manipulation) then you have yourself a paid user, other you dont.when someone buys the application then change the key on the device.
just do what you dont want to do and have 2 applications for free and paid it will probably be less work then the other 2 list above.
there are many ways of doing what you want. but i'll tell you this:
most applications use method 2 but on the opposite direction, meaning serial key.
i dont think your gonna create an mmo so theres no need for option 1 unless you really dont want anyone hacking your application (which i assume no matter what you do it will be hacked in todays world. i'll advice you to trust those who pay and accept those who dont)
method 3 is just easy in my opinion especialy when you want to just remove menu options, but it also creates duplicate repositories for code.
good luck. what ever you decide is good, make a theft protection, if someone wants to steal it, they will, dont fight it (even PS3 got hacked in the end)