since Android 4.2 (I guess) there is the new blocking mode feature.
I'd like to toggle (activate/deactivate) this feature from my app. I know that I can change basically everything about sounds via the SDK but I couldn't find a single article about how to toggle blocking mode.
That is not from stock Android. Whatever it is comes from your device manufacturer. You will have to ask them what that is and whether or not there is an API for controlling it that ordinary SDK apps can hold.
Related
I have seen this in action in places like hostels/hotels:
How can you lock/restrict/configure an android device to only use an application, while having the following or most of them?
After every boot open and lock to a specific application.
Restrict specific hardware buttons, if any. (power button or all)
Lock device to use specific applications.
Is there anything "out of the box" provided by the SDK when building your applications? And if there is something like that what is the API support for that and how low does it get, API level wise?
Do you configure your device in a specific way? Is ther a documented pipeline for that?
I would prefer something official from google rather than 3rd party applications that do that.
firet it will suport in or after android 5.0
second lock app on your device for that creaate activity for luncer startLockTask(){}
First of all Single Purpose application is supported after Android 5.0.
To lock the app on your device call a method startLockTask() in your onCreate of launcher activity.
For detailed decription see this doc.
I have a requirement to create an app that should run 24/7. I don't care about battery drain, becoz app will not be submitted to PlayStore and its only for the selected user.I also understand app will only last for one day, that is acceptable in my case.
The application functionality mainly dependent on network and Bluetooth functionality and the most of the code written in pre marshmallow and changing the whole implementation is not a right option for me now.
So is there any way to create the app without any restriction? Also, As observed some of the Device manufacturers put an extra layer of battery optimization to make this worse.
I tried to create a dummy foreground service with partial wakelock, but this not seems to be working. and even whitelisting the app didn't solve the issue.
There is no proper documentation from Google about what are the functionalities will be affected from doze/standby. According to Google doc the background task will not be suspended, it only deferred until the next maintenance window. If that is the case, App should be able to print all the app that is missed during doze period. But as observed app will print the log only during the maintenance window. The is will break the expected behavior.
Whitelisting is a good option but app will be still be affected by the doze mode. What is the reason to restrict the app behavior even when the user explicitly chose not to? It very frustrating when the app behaves differently in different device OS, Manufacturer etc.
Sorry for the story. I would like to understand is there any way to completely disable Doze and standby mode without changing the existing implementation? I have gone through the various document, but there is NO WAY to achieve this 100%. Please share your thoughts
I have a requirement to create an app that should run 24/7
Write a program for a desktop operating system. Or, perhaps find a mobile device that runs Linux and write a program for it. Or, create a custom version of Android that disables Doze/app standby. Or, see if there is some Android hardware that meets your requirements and does not apply Doze/app standby (e.g., devices that naturally are always plugged in, such as Android TV or a Chromebox).
So is there any way to create the app without any restriction?
No, sorry.
I would like to understand is there any way to completely disable Doze and standby mode without changing the existing implementation?
No, sorry.
I like to have single android app in our managed devices, we want only that app to be used on the device with necessary restriction, such that,
Single use - Device will have only one app, user can't use other apps, like browsing, youtube or anything,
the initial setting like notification sound, GPS always on, notification and ring sound maximum level can't be modified.
user can not power off the device.
this setting can only be changed by our servers.
i think i have 2 option,
1) Using samsung knox sdk on samsung devices,
Here's MDM proving feature of Samsung Knox Standard!
2) General Android way, Set up Single-Purpose Devices, COSU solution
Android Developer's site.
Wanted to know your's view on this, may be if you guys have done any of the two or any other ways, i could use some of the guidelines or a path.
Thanks for reading, and please comment if i was unable to articulate the subject or it needs editing.
You can use Google's new Android Management API, it seems to suit your needs.
It is a new cloud API that allows to manage Android devices from a server, without having to build an on-device agent (a device policy controller).
I have broad experience of using Samsung Kiosk Mode from Knox Standard SDK which is free and Pro-Kiosk mode from Knox Customization SDK (which has more functions but is not free).
So I can tell you for sure that all 4 points that you have mentioned can be achieved by using Knox Standard SDK.
Singe Purpose: https://seap.samsung.com/api-references/android-standard/reference/android/app/enterprise/kioskmode/KioskMode.html
LocationPolicy (you can turn on GPS and restrict changing): https://seap.samsung.com/api-references/android-standard/reference/android/app/enterprise/LocationPolicy.html
Yes. It is possible but I forgot the exact implementation.
Yes, as well.
Only downside of using this SDK is:
You are tied to Samsung (which I personally okay with, since Samsung has such market penetration and you could get service almost anywhere in the world and in enterprise world it is critical)
About Android native functionality: never tried it
Update March 7, 2019: Now I am playing around Device Owner, we use it for Kiosk mode, works well and works on android Device with Nougat and earlier.
To save energy of my mobile device my app should turn off animation of system operation android. How can I turn off animation of system operation android programmatically? Does there exist some broadcast receiver for listen this action?
I mean that if you want more performance in your android you can go settings ("Menu-Settings-Display-Animation-NO ANIMATIONS")... I want know how do this programmatically...
While I seem to recall that there might have been this option in old versions of Android, this option does not appear in newer ones. For example, my Galaxy Nexus does not have this option.
With respect to controlling window animations programmatically, the only options for those that I see (e.g., ANIMATOR_DURATION_SCALE) are now in Settings.Global as of Android 4.2 and cannot be modified by ordinary SDK apps. You might be able to control them in earlier versions of Android, though it is unclear what settings directly translate into your Settings option.
Moreover, if you have evidence that changing these values will materially "save energy of [your] mobile device", please post it.
Since the sdk version 4.2 it seems like it's no longer possible to modify airplane-mode on devices since google has moved this setting to Settings.Global which is read-only.
Has anyone been able to bypass this without and kind of rooting?
My apps primary function is to enable airplane-mode when the screen is turned off, and this stopped working since 4.2.
Just want to double check that my assessment is correct and that my app is dead starting from android 4.2 and above.
References:
http://developer.android.com/reference/android/provider/Settings.Global.html#AIRPLANE_MODE_ON
Just want to double check that my assessment is correct and that my app is dead starting from android 4.2 and above.
Yes. Or, to put it another way, if there is a back-door way to modify this setting, it represents a security hole, which will eventually get closed, much like the enable/disable GPS restriction that has existed for 3+ years.
I know you explicitly ask for a solution without rooting, but if you have a rooted device there is at least the (kind of) official solution to move your app into folder /system/app. Then it is possible to write into Settings.Global:
Settings.Global.putInt(context.getContentResolver(), Global.AIRPLANE_MODE_ON, mode ? 1 : 0);
Have a look of how to toggle airplane mode for 4.2
and how to move your app into /system/app here. I use this for my toggle widget Mini Status (source code link).