I'm trying to do a test-download of my first app from a non-Market web server (mine). I placed a signed APK on the server, browsed to it from my Nexus-S browser and clicked. I get a brief message about downloading, but then zilcho, no install, no nothing. And yes, I enabled "Unknown Sources" in the settings. Each time I try this, a small red circle appears at the top-left of my screen with an incrementing number.
Should this work? Am I doing something wrong?
Note: I don't want to use ADB or an App installer program if avoidable (I want to let unsophisticated beta testers install it).
Thanks,
John
I believe this is done by the manufacturer. I've seen it on a few phones.
Try using a different ROM (like cyanogen) if you're rooted.
Well, I figured it out myself (Duh), it was operator error.
The answer is that I didn't understand how download-install works. After downloading APK, I had to go to "Downloads" on my phone and select the file to install. It's all good now.
-John
Related
I recently fixed a bug in a demo version of my app. It's not out on the store yet, we're still testing.
The phone doesn't like it however : it tells me there's already an APK called that. That's true, but why doesn't it suggest to just replace it ?
And in the "Apps" settings screen, "Force quit" and "Uninstall" are greyed out - unclickable, can't do that for my app. Yes, I did quit my app, and the background service associated with it. Because yes, my app does require the following permissions :
Full Internet access
System tools : prevent sleeping, disable key lock, auto-start on boot
Hardware controls : audio volume
Storage : SD card
Any clues or things to do/check before uninstalling ? This other (empty) app that's also installed (an app I made when I was discovering Android for testing purposes) was uninstalled fine ...
Thanks in advance,
Charles
Possible causes I know of for it not offering to replace it:
You changed the package name, but you are using the same file name
for the APK.
You signed the package with a different keystore or key. Note that when clicking Run in Eclipse, it uses a debug keystore rather than the one you would use when exporting it for the store.
I'm not sure why it would disallow force quitting and uninstall. Maybe you just need to wait a few more seconds for that screen to finish loading, and the buttons will become active.
You can try opening a console and using adb uninstall com.yourpackagename to uninstall the old version, and see if it gives you any errors.
Got it !
First of all, see Tenfour's answer on impossible replacement. As for impossible uninstallation :
The "Lock Screen" permission makes my app a Device Administrator. And Device Admins can't be uninstalled !
The app can be downgraded in Settings -> Security -> Device Admins.
That's all folks ! Thanks for the help.
I want to make 2 quick screenshots for the app am putting in the market.. But problem is when i signed the app for the market i can't transtef it to my phone and install the .apk.. Its not working..
Am using Eclipse. And i can't realy find a way to like make it an .apk that i can install from the phone cus the signed apk seems to not work..
Is there some other way i need to do so i can install this apk ?
And when i signed the app what do i need the certificate for?? When uploading it doesn't say anything about i need it..
Thanks if you can help.
It sounds like you're not signing your application correctly. Have you tried reading this? It's very helpful:
http://developer.android.com/guide/publishing/app-signing.html
Also, you should be able to just run the application on your phone from Eclipse and take your screenshots using Android SDK's built-in screenshot functionality from the Devices view.
Is it possible to install an apk programmatically in the background or does the user have to accept the installation.
My scenario is that I want my employees to all have the same set of applications installed.
Of course they can install applications by them self, but I want them all to have at least some applications installed.
I'm not talking about installing applications from the market.
solution in this link
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(new File(Environment.getExternalStorageDirectory() + "/download/" + "app.apk")),"application/vnd.android.package-archive");
startActivity(intent);
Let me get this straight, you want to remotely put an app on a large number of phones and have it install itself? I don't think that's possible. If it were, think of the virus possibilities!
I think you can email the APK to the phones and have the user use something like Apps-Installer to install it, but I've heard of problems with that method. For your situation though, I would recommend trying it.
The only other alternative I can see beside putting them in the market would be to manually collect all the phones you want it on and manually put it on each one with the ADB, but that would be a huge pain.
adb install <apk name>
using above statement we can install apk into devices.For more information
install apk
It's a huge security concern and I do not think that Android allows that!
At least, I would not allow any util or service to install any app without informing me.
The best way would be console installation using command adb install <apk name>. You can have APKs in a remote server and all employees have to install them and send you the console output.
Some more requirements would be useful. Is the user required to have these apps? Do you want the apps to be updatable through the market? here's my thoughts in lieu of that information ...
The problem with not going through the market is that they won't get update notices and won't see those apps in the "my apps" list in the market. i'd rethink that ... It's probably not what the user wants, unless you are installing for example enterprise apps that aren't on the market anyway.
You could for example create a "recommended apps" app. It can show your list of apps, and indicate which are installed, and link to the market install page. This of course doesn't force them to have the app installed, but this is actually a friendlier thing to do.
There's also nothing stopping you from creating your own market app. The tools are all there in the SDK. Personally, I'd hate this as a user and would prefer the lighter weight integration on top of the existing market I mentioned above.
I've accepted for a while now that it's impossible to silently install an application on Android - that is, to have a program install an application bundled as an APK without providing the standard OS installation prompt and going through the app installer activity. But now I've picked up a copy of the Appbrain fast web installer, and it does exactly this.
How on earth is this possible? :D
I think the clue is pretty much in this statement I found here in the FAQ.
The fast web install worked for me yesterday, but it doesn't work anymore today. What's wrong?
The permission to install apps directly on your phone needs to be refreshed once every few days. Go back to the "Fast Web Install" app on your phone and click the button to give us the permission again. We are working on a future update that will optionally automatically refresh this setting.
I presume this is very similar to what Google does in the kill switch. I am assuming that the kill switch is an application on my device, just hidden from me. When Google wants to remove an application, it silently uninstalls it without asking for our permission. I am very sure this security hole is of their making. Now we just need to figure that out... =D
You can ( in a very hackish way ) install apps silently using adb. You have to enable USB Debugging, but just push the APK to /data/app. ie:
adb push MyApp.apk /data/app
or -
adb install MyApp.apk (cleaner way)
The second command MAY prompt for an installation, I don't remember off the top of my head.
IF you can work out what the standard installer does when it installs, you can replicate that behaviour in your app, however yours would need quite extensive permissions to do everything properly.
Seriously, don't even try.
I have an early version of my app that I want some testers to take a look at. But I am not ready to put it on Market. How do I distribute it to my testers and how do they install it on their phones. One of the beta testers has a Asus eeePC with Android 2.0 installed and I would like him to try it too. How does this work?
They can just download it from any URL (go to the URL using the device browser) and install it.
They'll need to go to Settings->Applications and check the "Unknown Sources" checkbox.
You can just package the app up as a .apk from eclipse and host it anywhere. Then just have anyone you want visit the URL from their android an it will be installed. But as mentioned they will need to have the Settings->Applications and check the "Unknown Sources" checkbox checked first.
URL, ftp or any another manual distribution is good until you have a couple testers and less than 10 devices. Actually, there are many services for that. The biggest one was Testflightapps.com. But now it's Apple's service and they stoped support android. There are another though. Testfairy.com, Crashlitics(to collect and analize crashes from devices), etc. Just google it ;)
as mentioned in first answer you can download from unknown source by rendering to that URL
Apart from that, just make sure that your app hosting server supports MIME type downloading.(very basic but important)
On a device:
In Settings-> applications, check "unknown sources. Now by putting the apk on the devices sd card you can navigate to its directory with a file manager such as Astro and install it.
On a simulator:
While running an emulator, navigate to the /tools directory of the android SDK if you haven't added it to your PATH. Now execute "adb install path/to/your_application.apk".