I want to create app that targets only Android TV. I use this in my manifest
<uses-feature android:name="android.software.leanback"
android:required="true" />
considering on developers.android it says:
If you set the required attribute value to true, your app will run only on devices that use the Leanback UI.
But i can run my app on any device(tablet, phone or TV). Am i doing something wrong? I also added activity with android.intent.category.LEANBACK_LAUNCHER.
Does this only happen in debug mode? And if so, does this allows me to test my TV app on devices like Android mini pc or Kindle Fire?
I found that by setting as you did, it limits the device compatibility on Google Play. But you can still test on other devices using adb (it works OK with 7 and 10 inch tablets, but the UI is too big for my Nexus 4). However, you can only launch through adb. The icon will not show up on non-Android TV devices even though it is installed.
Am i doing something wrong?
Not that I can see.
Does this only happen in debug mode?
It happens when you are not distributing through a distribution channel like the Play Store. Quoting the docs for <uses-feature>:
The purpose of a declaration is to inform any external entity of the set of hardware and software features on which your application depends.
Here, "external entity" primarily is a distribution channel, though in principle it could be anything else that has access to the APK and chooses to examine it.
Related
I find this question a couple places on the web, but never with a good answer. Let me be specific in the questions asked.
I want to build a custom Android ROM which only features one app. This app is not to interact with any hardware (per now). This app will be launched on the start up of the device. No locked-screen. The device will have to restart if the app malfunctions.
A resource told me that you can change the launcher app of the ROM.
-> Does this mean that the home screen, the one which displays all apps on our phones, is merely another app? If so, can you simply change the launcher app as it is stated here? What were to happen if this app fails?
If this is the case, it would solve the entire issue.
If not, how do you go about making this sort of project? It includes
Making an app on AOSP
Refuse users to leave the app or interact with anything else
Making this app part of the boot-up process
Remove locked screen
Make the app a dependency of the OS (to force shutdown if malfunction)
Thanks in advance for any replies
I just found Android have a topic about dedicated devices (formerly called corporate-owned single-use, or COSU) are a subset of company-owned devices that serve a specific purpose. maybe that can meet your requirement.
BTW, After into the sub-topic lock task mode that mentions about set DPC whitelist APPs and the device policy controller (DPC) needs setup by other steps.... FYR~
I would like to write an application which can programatically generate touch events on the phone.
I have already tried this methods:
adb : adb swipe and so on... It requires USB cable and connect the phone to pc
adb ON TCPIP: same
My problem with adb is to require so much presetting by user and I don't want to make the user to learn it. I have already made an application which use adb, but it's difficult for the user to set up properly :(
I have heard and I tried to sign my application with platform sign, but it's not good for me, because I would like to publish my app on android market and it is not a system application...
I would like to find a way to achieve this in a single application which can produce touch outside of the app (from background) and I would like to publish on market.
I have found this application: https://play.google.com/store/apps/details?id=com.teamviewer.quicksupport.samsung which can basically do this. Because when I click on my computer, it send a message to the phone and the phone make the touch on the screen. How and with what privileges can teamviewer do it?
Please give me some advice about it.
I would like to find a way to achieve this in a single application which can produce touch outside of the app (from background) and I would like to publish on market.
This is not possible, outside of what little input faking can be done by an accessibility service.
How and with what privileges can teamviewer do it?
If your read that Play Store listing, you will notice that it only works with Samsung devices. That is because the makers of TeamViewer struck a deal with Samsung to enable this sort of integration. Similarly, the TeamViewer team struck deals with a few other device manufacturers. However, they did not do so with all manufacturers, and so TeamViewer does not work on all devices.
Have a look here .This might be useful.
InputInjector
Android library that eases the process of injecting InputEvents (MotionEvent, KeyEvent) to you Android app. The library uses internal API calls to inject events and depend on the accessability of these. This library will therefore not work on all devices but theoretically support Android 2.3 and forward (API level 9-18+).
Androd 2.3 (API level 9-15)
In older versions of Android we envoke the same system calls as used by the Instrumentation framework.
Permission No special permission needs to be set.
Androd 4.1.2 (API level 16 and forward)
As of API level 16 we have access to the InputManager class. We use this as the basis for the input injection.
Permission Using InputManager for injection requires setting permission android.permission.INJECT_EVENTS in your manifest.
Using this permission may require altering Lint Error Checking in order to be able to compile. In Eclipse this is done by going to Window->Preferences->Android->Lint Error Checking and then finding ProtectedPermissions and setting severity to something else than error.
NOTE: In order to inject events to other apps using InputManager, your apk must be signed with system level certificate.
https://github.com/arnebp/android-inputinjector
I recently bought a Galaxy Nexus and flashed 4.0.4 onto it (I don't know if this affected the problem). My application used to, but no longer, is displayed in the Android Market on the device when searching for it or even when navigating to My Apps.
It does display in my launcher correctly once installed and runs perfectly, however it will not show up in the Android Market. I am very confused as to why this is (comes up on my Nexus One, Droid X, Galaxy S etc.) and my min SDK version is 7.
In my Manifest
uses-sdk android:minSdkVersion="7"
Any help would be greatly appreciated!
Turn off the copy write protection and it will show up in a few hours..It's better to implement you're own authentication system.
Does this happen only on your device or on other GNs as well? You can use the developer console to find out what devices the app won't show up on. Find the 'Supported devices' section, then click 'Show devices' and do a search for 'Samsung'. If it is filtered, it might be due to the permissions/features you are using in the manifest. Check those and and requried=false as necessary (if possible).
Is it possible to connect two (or more) android devices via USB to the dev machine and debug programs on both devices at the same time? I am trying to do this with an Atrix and Nexus One with no luck.
I couldn't find much documentation about this leading me to believe that it isn't possible..
You can certainly attach two Androids by USB to the same dev machine, and you can debug both of them.
If you are using adb, then you have to specify which Android you are debugging, and can only debug one at a time.
If you are using Eclipse (Helios), you can select the device in the Android Device view, and see output in the Android Logcat view. And I observe that if you select Android A then Android B a few times, you get intermingled Logcat output from both devices. I don't know if that's the design behavior, and it may not work the same on all versions of Eclipse, but it can be helpful.
Another approach is to monitor one device in Eclipse and the other in DDMS.
I have an android app on the market called D Bitly and I have a tablet user trying to download it and is getting "device not supported". I have double checked the market settings and it says that all devices are supported.
I have done a quick google search and I am not coming up with anything.
It requires 2 permissions:
android.permission.INTERNET
android.permission.ACCESS_NETWORK_STATE
and is for android 2.2 and up.
Any help would greatly be appreciated!
Edit: for those of you looking for an exact answer. The problem was being caused by copy protection. I have implemented the licensing service and removed the copy protection and all seems to be okay. Not exactly sure why copy protection doesn't play nicely with tablets or newer OS...
Your app is available for download for the XOOM and Galaxy Tab, so it's not a tablet-specific issue.
It's possible that the user in question has a modded ROM or something, perhaps causing some confusion with the Market servers. Beyond that, it may just be something peculiar with that Dell model.