android: Detect if App was downloaded from market - android

I've got an app which I would like to distribute through the market place and also from my own site. How do I, using only one build and one key, check to see if the app was downloaded from the market place or not?
This question is answered by having the code signed with different keys, but we ideally want a single build.

packageManager.getInstallerPackageName(context).equals("com.google.android.feedback")
http://developer.android.com/reference/android/content/pm/PackageManager.html#getInstallerPackageName(java.lang.String)

It seems that this can't be done.

On my Android 1.5 handset only applications installed via Market are listed in "My downloads" in Market App, so the question is if you can retrieve that list in runtime. I don't know if it's the same with Android 2.x.

Paid apps from the market can use the Android Licensing Module to determine if they are buyed from the market. But for free apps i don't know a solution
http://developer.android.com/guide/publishing/licensing.html

I don't know if this really correlates or not, but if you can read /data/system/packages.xml market apps seem to have installer="com.google.android.feedback" while those bundled with the system build and those locally compiled do not.

Related

How to prevent such websites like apkpure?

I published many versions so far. And, the users should use the most recent app. However, apkpure shows all the app list that I released.
How come this website take all the apk or abb? I don't want the website takes my applications and block the users in the app. Is there any way to do that?
Actually it's possible to do, using one of the Android features like app bundles. This could help you to verify non Google Play installation. Or even create behavior to crash/exit in such cases.
The whole idea of the approach, it's separation application features to different bundles which could installed be installed within Google play package manager. So you can check it's documentation.
Lots of android users can not access play store when removing the google restrictions, because they want apk file for install. Third party websites publish for that kind users, As well as some desktop users want APk file specially GAME APPs. I think they not Change original APK file.

Is there a way to know in code from where the application downloaded on Android

I need to know how can I know from where to application apk downloaded from so I can make layout changes according to the download source?
Is there a way knowing it?
No. You cannot get from the android system where the APK is downloaded from.
But you could use different signatures for different sources and do as I explained here:
Supporting Amazon and Android market (Google Play) links inside application
What I explain in the above question is specific to an app for amazon and an app for Android Market, but the same approach applies - as far as checking signatures and things.

Can I have the market update an app that was installed from else where?

I'm writing an app and would like users to be able to download the apk and install it from my website. However, I would like the app to still be able to update through the market, is this possible?
I don't believe that it is possible.
You are better off to link them to the market from your website rather than hosting the APK file.
market://search?q=pname:your.package.name
That will open the market on the users phone. It is safer and easier than plugging in the phone and installing over USB.
As far as I know and tested, applications installed using .apk files, will be recognized from the android market. Some games though like Angry Birds, do not appear on my list of installed applications and unfortunately I can't find out why.
But for what is worth the following link will help you more.
http://androidforums.com/application-development/65282-can-you-keep-your-paid-app-updating-illegally-installed-apk.html
This is not possible without apps like Titanium Backup. Titanium Backup can link apps to their market counter-parts but you cannot do it without an app like that (which requires Root).
As i know - it's not possible.
Even if you'll use the same package names and signing certificates.

Android app - publish but not make it accessible through android market search

Here's the scenario i am trying to achieve:
Publish/have an app in the Android app store
However - i do not want it to be searchable through the android market search, etc.
The only way people can access the app is if i give them an explicit link to download
Is above possible? If so - how? All FAQs/instrucitons i have seen publish & make it searchable for the whole world - but i want it only accessible through #3 above.
Thanks.
Try this site https://www.push-link.com/, you can upload apk on your private account and only can be accessible thorough automatic generated link and QR code. This service contains user notification on new versions and bug reports.
Two things that are problematic with the link to an APK approach:
Some of the devices out there (I m only aware of the Motorola Atrix) don't have the "Unkown Sources" option, meaning that this won't work on them.
You loose the ability to auto update the app if you want.
I would recommend adding a login process where only your users will have access to the actual application. This way, you still have the Market advantages and only those people can activate the application.
The main disadvantage is that the application will be open to search in the Market, but as far as I know, this won't be a problem since people will immediately uninstall it since they won't be able to activate it.
In your case, what I do is, I dont upload the application to the Market and distribute it from my server.
I mean this is simple, sweet and it also saves my $25 for the market account...
Don't do this. Just publish the APK to your own website, then give the users the URL to the APK, they can download and install it directly. The only thing they'll need to do is ensure that Menu-Settings-Applications-Unknown sources is ticked.

App not shown in 2.1 Market

I published several free and paid app in the Market. I recently get
several complains from customers about not finding my app in the 2.1
Market. Even if they have bought them before, they can't find it in
the market or their download list after updating to 2.1.
Can anyone tell me what the problem is? My apps only require minimal SDK 3..
Thanks a lot!!
Update:
It looks like that they are not shown because they have copy protection enabled. Is this a bug in the Market?
I am having this difficulty also using my ROM OpenEclair (www.openeclair.org)
This only occurs on 2.1, but if it is a custom ROM - they may run into the trouble that the dev is using a Market from 1.6 instead of 2.1
Another possibility is using a 2.1 Market from a diff phone (such as the Droid Eris's Market on a Dream/Magic)
I think I found the answer and it has to do with recent changes in Google market filters on Jun 1st, 2010. Take a look at the following link:
http://developer.android.com/guide/appendix/market-filters.html
I found in my case that the app was hidden in some phones since I had included the following entry in my manifest:
It is because copy-protection is depreciated. Every build or release needs to be whitelisted by google as secure enough to have copy-protected apps. That way they can "ensure" it wont be copied.
From:
http://developer.android.com/guide/publishing/licensing.html
"Replacement for copy protection
Android Market Licensing is a flexible, secure mechanism for controlling access to your applications. It effectively replaces the copy-protection mechanism offered on Android Market and gives you wider distribution potential for your applications."
Use the licensing instead in order to hit a larger audience or customer base.

Categories

Resources