I’m developing a custom screen saver for Android TV devices.
On Google Chromecast, to set a screen saver, there is no possibility to do it in system settings, but it is possible to open it with intent.
val intent = Intent(Intent.ACTION_MAIN).setClassName(
"com.android.tv.settings",
"com.android.tv.settings.device.display.daydream.DaydreamActivity"
)
startActivity(intent)
After OS Update (OS version 10, 1 May 2022), this intent is presented but doing nothing.
Start activity is called, but nothing happens.
I also checked similar apps, like PhotoGalery, and Dreamy, and there is the same problem.
Is there any other way to handle this?
Chromecast with Google TV (HD or 4K)
As you've discovered, the July 2022 update for the Chromecast with Google TV removed the ability/intent to open the Screensaver settings screen which allowed a user to...
Select Ambient or any other installed 3rd party screensaver
Change the timeout before the screensaver starts
We don't know the reason for its removal but this update did free up more space on the device - and as the Android OS is smaller, maybe they thought it wasn't needed and removed it?
Of course, it's possible a future update will restore the feature but who knows.
Solutions?
Currently, there are no good or easy solutions for regular or non-technical users.
I have a screensaver in Play Store and I advise users to check my website for instructions on how to...
Install the Android SDK Tools
Run two ADB commands to set my screensaver as default and change the timeout value if needed
But that's hardly a great experience.
Other Android TV devices
It's also important to know that a Chromecast with Google TV is different to other Android TVs, it's been customised a bit more - compare their Settings screens, for example.
Both the latest 2022 Sony TVs with Android 10 and Nvidia Shield running Android 11 still have the ability to choose 3rd party screensavers.
By contrast, the Amazon Fire TV devices had this option removed from the very beginning.
Related
I'm making an app that should be able to cast to TV's (Android TV & Chromecast). I have experience with Android Development, but I am still at the learning point regarding google cast.
In my environment there are few TV's (5+),and when I open Youtube app on my phone, and select Cast button, device discovers couple of TV's (2-3, or more), but when I start my app and select Cast button, my app discovers only 1 TV (same TV every time).
I want to ask if someone can explain what determines which devices I can cast to? i.e. why youtube app discovers 3+ devices to cast to, and my app discovers only 1 device. It's the same phone, same environment (same TV's), same network.
Thanks in advance for any clarification on this.
EDIT
Smartphone: Sony Xperia L1 (G3311).
Here is some of the TV's I'm using:
TV #1 : Philips 43PUS6412/12 --- Android TV (V.8)
TV #2 : Samsung 7 Series (50) - Model Code: UE50NU7402 --- Android TV
TV #3 : Samsung 5 Series (32) - Some older model --- Android TV BOX (MI BOX, model: MDZ-16-AB)
I checked, all devices are on the same WI-FI network.
And this is even more confusing for me:
On Youtube app I see all these TV's all the time, while
On Sony' default "Album" app, as well as in the app I made, and google cast sample app I downloaded to phone also - at first I saw ONLY "MiBox", none else.
After some time, when I tried couple of times again and again, all apps mentioned above have discovered "Philips TV", but now they didn't discover "MiBox",
For couple of tries, apps managed to discover both "Philips TV" and "MiBox" at the same time,
Then, again these apps discovered only "MiBox", without "Philips",
And now again, apps see only "Philips", without "MiBox"...
I don't know what is happening, what is causing this behaviour, so please I would really appreciate any help.
By themselves Samsung TVs run Tizen. In the Tizen App Store there is a YouTube client which I presume the YouTube Android phone app is connecting to (you may have paired them at some point, i.e. same login credentials).
While a TV set like Philips is running Android TV, from my understanding that the running the Chromecast receiver app isn't consistent. I searched on the model and didn't see that particular model has the "Works with Google Assistant" branding or any branding that it supports "Google Cast"/"Google Chromecast".
For example Sony has a page on updating the "Built in Chromecast" app:
https://www.sony.com/electronics/support/articles/00114152
I would use that page as a guide and see if the Philips TV set has a Chromecast receiver app and is updated. My guess is that even if it does, it doesn't run the background correctly (and would have gotten the appropriate branding logos).
A similar situation exists for any Android TV box like MiBox, the Chromecast receiver app isn't consistent.
See this Reddit thread about the subject:
https://www.reddit.com/r/AndroidTV/comments/74klxy/casting_to_mi_box/
If you are doing development work. I would advise at least one Google Chromecast device as a baseline since Google controls the software updates and built the hardware.
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.
Other than using an MDM service or product, is there a way to automate the mass setup of android devices that all need the same configuration?
Requirements:
APK installation (in-house app)
Profile setup (lockscreen setup, screen brightness, etc.)
Customization (wallpaper, icon placement, removal of unwanted default apps)
I am only familiar with Samsung solutions.
For exactly this purpose Knox Configure has been created. You can setting up big bunch of phones without even opening the boxes.
So if you use Android Samsung devices take a look:
https://www.samsungknox.com/en/solutions/knox-configure
Update: Google introduced Zero Touch with Android Oreo
https://www.android.com/enterprise/management/zero-touch/
I want to develop a HTML5 app to control doors, lights and other things in my garage. The frontend of will get displayed on a 24/7 turned on screen, that really only displays the app (kiosk mode). So there will be really only the app, no browser controls like back and forth button or url bar, and also no notification bar or back and home buttons of the device. Just the app.
For this I considered 2 options:
Doing it with a raspberry PI & connect a touch screen to i
Doint it on a dead cheap noname Android Tablet
Since the 2nd option is much more elegant from the hardware point of view (everything I need is already built in) I decided to try this first and bought a 70 USD Prestigio Tablet.
But since I'm no android dev, I'm not sure how I can even modify the stock firmware that's currently installed on the device.
As far as I can see, the bootloader is unlocked and ready for flashing a modified firmware image.
And here comes the question:
How can I get the device's currently installed firmware image? Do I have to contact the manufacturer for this or can I extract it from the device directly?
If I get the firmware image, how will I be able to modify files in it?
Or do you think I got the wrong route?
You need to find sources of firmware for your specific device. I bet manufacturer would not provide them. For Nexus devices it is easier because there is AOSP (android open source project) which gives you an opportunity to build a firmware. You can also check specific forums like 4pda.
But there is another way - to make a KIOSK mode for your device example. I'm not sure how does that fit into requirements. Also You can make your app as Launcher app and live with that :)
My company makes a tablet Android app to control an industrial process. We had been using a Galaxy Tab 10.1, but as that's no longer available in the US we're evaluating the Galaxy Tab 2 10.1, running 4.03. We ship the tablet pre-installed with our app, and the app is carefully tested with the version of Android software running on the tablet.
As I was setting up one of the new tablets the setup wizard put up a message saying "You agree that your tablet may receive and install updates from Google" It wasn't asking me, it was telling me; there was no place to say "no" or disagree. Auto update is DISabled in settings.
How can I programmatically prevent a force-feed update to the tablet? Our users are connected to a local area net because the tablets are used to control other industrial products, but there is never any need to connect to the web beyond the factory walls, but we have no way to enforce that on our customers. The risk is that Google could force a change onto the tablet that might break our app.
Thanks in advance.
How can I programmatically prevent a force-feed update to the tablet?
Build your own firmware and use that rather than the stock firmware.
The risk is that Google could force a change onto the tablet that might break our app.
The risk of blocking the firmware updates is that Samsung (not Google) could deliver an update to the tablet that fixes flaws in the firmware that your customers would appreciate (e.g., better WiFi connectivity).
Please understand that the devices that you are using are consumer devices. Such devices are not intended for use "to control an industrial process". The expectation is that if you are using Android in such settings, that you would source your own device and have control over your firmware. Alas, there is not a whole lot of support for that at the moment, something I blogged about recently.
As long as you target your desired API, an update to the system should not break any functionality of your app. To answer your question, you cannot programatically disable automatic updates, it is a user function.
Check this link as well: Programatically enable/disable market auto-update