Using Kiosk mode on android device(mobile,tablets etc) - java

I am working on a project that will work on android devices and will convert them in kiosk. So at this moment I am doing R&D on Kiosk mode, but there is very little help on it. But I came across different things. These are using DPM, Using EMM or Using Android Management API
I just wanted to do following things to ship my app to my clients.These objectives are as follow
If client is installing my app, he should follow simple steps (like android permissions) to make my app as default app.
While following simple steps, my app must make android device as Kiosk and should make my app unable to exit by clients user.
My app must be able to clear kiosk mode from device so that client can use his device as simple device
The most important thing is, we are not shipping devices with our app and we may not have any physical access to the client device and client may not be so much technical. So app must do all things
**So from the perspective of these above 4 points , what is best for me please share your knowledge. What will be best for me to go with? Please help me as this is so much confusing...
**

Fully managed mode
In fully managed mode the entire device is managed and the device needs to be factory reset before setup. To set up a device in fully managed mode you need to use a QR code.
For devices running Android 7.0 or above:
Turn on a new or factory-reset device.
Tap the same spot on the welcome screen six times to enter QR code mode. Connect to a WiFi network.
Scan the QR code.
For devices running Android 6.0:
Turn on a new or factory-reset device.
Follow the setup wizard and enter your Wi-Fi details.
When prompted to sign in, enter afw#setup.
Tap Next, and then accept the installation of Android Device Policy.
Scan the QR code.
Work profile mode
In work profile mode corporate apps and data are kept secure in a self-contained work profile while the user keeps control of the rest of the device. To set up a work profile you can either use a QR code or an enrollment link.
Using the enrollment link:
Make the link accessible on the device (send it via email or put it on a website).
Open the link.
Or using the QR code:
Go to Settings > Google.
Tap "Set up your work profile".
Scan the QR code.
What's next?
By now you should have a managed device configured with a basic policy, but there's much more you can do with the Android Management API
for more info : https://developers.google.com/android/work/release-solution

Related

turning on off samsung secure folder programmatically android java api

enter image description here
Is it possible to turn on off (hide) the samsung secure folder through code in android java? Is there any Api or other way to do this function from another app?
I want to create an android app that connects to internet and it has a simple socket.io that gets the turn on / off (hide/unhide) command from server and hides or unhides the devices secure folder.
is it possible?
thanks.
Samsung secure folder is a proprietary feature from Samsung OEM. They do not provide any api to any third party application to do any changes to this or any of there features. Any hack that you may devise would be temporary and futile as they are quite active in terminating such attempts.

App Links on Android with the app not installed

I am trying to implement app links into my app to make sure that other malicious apps cannot register for my URL.
I read the guide on app links here https://developer.android.com/training/app-links/verify-site-associations.html and I have mostly understood it. But one thing which is not clear to me is how can I prevent malicious apps from receiving my domain links if my app is not installed.
Consider this scenario.
1. My app is not installed on the user's device
2. Some malicious app is and it knows the URL that my app handles
Wouldn't this launch the malicious app and it can intercept my URL if the user selects that app from the disambiguation dialog? Is there any way to prevent it?
I understand that android:autoVerify="true" will trigger the domain verification when the app is installed, but what if the app is not installed?
Whether the user has the app installed or not, the "illegal" app won't be able to handle your links since it has not access to your domain in order to save there the needed JSON file. Am I clear?
There is a JSON file that is required during App Link configuration, that has to be uploaded to your server (that includes your app ID), through which your web-app basically says to the Android OS 'this is my counterpart on Android devices, I authorise it to handle these URLs'. Since app IDs are unique, there is no way another app can meet those conditions.
To quote the docs:
An Android App Link is a deep link based on your website URL that has
been verified to belong to your website.
So, although an app may register an <intent-filter> it ALSO has to be verified by the website whose URL it's trying to handle. And this happens on the server, so, out of the reach of a mobile client.
See also HERE for a more detailed explanation.

Is EMM what I'm looking for?

We have a Java based web application and an android app for our enterprise needs. We would like to remotely push the android app from the web application and we don't know how to achieve this. After searching in Google, I found Android EMM but did not understand what that is exactly as there were no other blogs or tutorials other than the Google site which was difficult for me to understand.
It is similar to MDM solution but do MDM servers have an app preinstalled in the devices so that the installed app manages the installation of other apps?
Can anybody tell how to remotely push the android app from my web application?
To remotely push an app to an Android device you need to manage this device, you cannot just push an app on anyone's device. To manage a device you need to set up this device as managed, which will require a factory reset.
If you want to pursue this approach you can try the Android Management API.
You can just upload .apk file to your server and provide a link to the user. This is a very simple solution but requires user to agree "install apk from third party sources". In this case, a user needs to agree with installing apk.
If you want to install apk without user agreement you need to activate Device Owner on Android (Fred mentioned in the comment this approach).

Google Play Games not authenticating in Android

In Debug mode, Google Play Games shows it's loading screen and I can even log in. However, afterwards I am receiving this error in a clean message box:
The application is incorrectly configured. Check that the package name and signing certificate match the client ID created in Developer Console. Also, if the application is not yet published, check that the account you are trying to sign in with is listed as a tester account. See logs for more information.
In Release mode, the game crashes and I am receiving this error in Android Studio:
Access Not Configured. The API (Google Play Game Services API) is not enabled for your project. Please use the Google Developers Console to update your configuration.
In Google Play Developer Console, all the marks are ticked. I don't understand why it is not working. Should I do something with the SHA key or client ID?
I did not publish my settings yet, but it says The Google Play game services settings are ready to test. I use my developer account as test account on the same device as I am testing on.
I was using the wrong SHA1 keys. I had to create a new GPGS Game and perform step 3C on this page: https://developers.google.com/games/services/console/enabling

Google Game Services cloud save STATUS_DEVELOPER_ERROR

I use Google Game Services not in the first time, I have 2 apps using it and doing it ok.
Now I'm working on another app and found that even though it's connected to Google Play Game Services and shows me a user's name it can't use cloud save state feature.
My android app was published and then unpublished, so it is not a draft. Game (in Game Services Tab of Google Play Developer Console) also is published. I have two linked apps with the same package name and different SHA1 footprints: for debug eclipse and release version (as suggested by Google).
I've tried my old app on this emulator (genymotion) and it works and saves state.
I've double checked everything according to
https://developers.google.com/games/services/android/troubleshooting, but it looks that averything is ok.
But when trying to save app state both in release or debug apk I get the same STATUS_DEVELOPER_ERROR and in logcat I see the same message:
[97] a.a: Unexpected response code 403 for
https://www.googleapis.com/appstate/v1/states/3 Error executing
operation: Access Not Configured. The API is not enabled for your
project, or there is a per-IP or per-Referer restriction configured on
your API key and the request does not match these restrictions. Please
use the Google Developers Console to update your configuration.
Of course I've checked Google Developers Console and see that Google+ API, Google Play Game Services, Google Play Game Management and Drive API are on. I've even created a new Game (in Game Services Tab of Google Play Developer Console) and relinked my app to it, the same result: connection ok, yet STATUS_DEVELOPER_ERROR.
I'm trying to compare my new app with the previous, but I use the same IabHelper of Bruno Oliveira. And for my previous game Drive API is turned off, but cloud save works.
What did I forget?

Categories