I've just been trying out creating a list of applications installed on Android. I want to do this so I have a list of applications I've installed before I backup and reset my phone to factory settings.
It's going well so far, I have this information:
package Name
friendly name
version number/code
if its a system package (FLAG_SYSTEM)
if its a persistent app (FLAG_PERSISTENT)
and the application description
The last thing that I would like to have but that does not seem to exist is the name of the person/group/company etc that created the application. That way I can see if I have multiple applications by the same creator.
Is there a specific place this is stored in Android packages or does it just not exist?
I've had a good search around but I can not find anything, but I thought I would try a specific query about it before I give up.
Thanks in advance
This is not stored anywhere in your Android package AFAIK. It's only set by the developer when they register their developer account.
Related
My question may look strange but I'll try to explain somehow. Let's imagine there is an Android device with software that adjusts some settings based on application package name - it's a real-life scenario. This software may provide better performance for listed applications and there is no way to add my application to that list. What I'm capable of doing is to release my application under one of listed package names (not to Google Play, just provide APK on GitHub so that anyone who wants to use it will install it manually). And there comes my question:
is it legal to use some company's existing package name for my own application? Is it protected legally? My app is free & open source application.
Just to be clear: I'm not doing this to impersonate "real" application with bad intentions. I just want my application to use full range of device capabilities... And download page will state it clearly & visibly :)
In other words: can I release app with package name e.g. com.google.android.talk? I know that it won't override existing app if someone has it installed etc. (it's not my goal to override some application). I'm just talking about such possibility and legality.
This is totally legal, as you can use whatever String you want for your app/package name.
However, just doing this will most probably be not enough to "impersonate" the other app, as this would be a serious security flaw. First of all, there can never be two apps with the same package name installed.
If the app you speak about is created by a "serious" developer, say Google or one of the OEMs, it will check both package and signature of the app and will therefore know your app is not the same as the replaced app.
Also, when the user tries to install your app, a package conflict will happen, followed by the signature conflict. There are two scenarios here:
If the app you are replacing is a standard app, the user will be able to install your app from adb, but only after thay accept to completely wipe the data of the original app. You have probably seen this dialog while developing stuff.
If the app is provided by the OEM and has system permissions, the installation will simply fail, with no possibility to "overwrite" the app. This can be dodged by having the devices rooted, replacing the .apk file in the system directory and restarting the phone.
Please mind that none of the above will work by just uploading the .apk to the phone. This needs to be done from adb. On-phone installer will just fail.
I'm really new to Android programming.
I'm trying to get a list of my deleted and installed apps.
I found out that I can utilize the PackageManager class and get the installed applications with the getInstalledApplications() method. But I'm not sure how to find the deleted apps.
I know that Google Play Store keeps this information (I can see it in my phone). But I have no idea how to access this list.
But I'm not sure how to find the deleted apps.
You can't.
but I have no idea how to access this list.
You can't. Even if that data is saved locally on the device (and I don't know that it is), that data is private to the Play Store app. The Play Store app does not have any APIs for third-party apps, like yours, to rummage through the apps that the user has uninstalled.
Also, please bear in mind that there are many devices that do not have the Play Store at all, in addition to uninstalled apps that were never installed via the Play Store in the first place.
I think that this information is on Google's database and not in the phone somewhere. So, it is not accessible for any app.
I want to know is there any way to update a existing Android app in playstore with my new Android app?
Let me describe: I have a app published on playstore OK with any users. So now I have created a different app with same functionality With different package name and project name. So now I want to update existing app with new app without losing existing users. Is it possible?
What you are trying to achieve is not possible. You can't change the package name for an already published app. The best you could do is to drive your users to the new published app by adding a banner or link to the updated app inside the old one.
Google Play Store does not allow package names to be changed. It depends on a consistent package name to identify the individual listings.
For a user friendly solution you might add a splash screen to the old app with a link to the Play Store listing of your updated app.
Unfortunately you cant do that.
Thats because the package name is a unique identifier. So if you crate an app project in the PlayStore and upload an apk, this project is permanently bond to that package name.
Question: Was it necessary to change the package name?
If not, you could keep the existing packagename, change/relayout your app as you desire, and upload the new apk. Your users will then perform a regular update and everything will be kept (ratings, downloads, etc ...)
Is it possible to check if a name is available without choosing it ?
Since I am developing for android, wp8, and iOS at the same time, I wanted to check that the name is available on all three stores first ?
You cant check app name is available to you without entering it, Specially for iOS and WP8.
In android, You may choose same name of app if other developer has published already but package name should be different.
For iOS and WP8, if someone have already created app with that name and not released yet then you cant able to choose same name. And to check this scenario, you need to login in respective store's developer account and check name is available or not by filling required details.
I hope it may help you.
Is it legal to update an Android app on the Play store with a totally different app under the same package name?
Is it considered against the policies since I am updating the app USING THE SAME PACKAGE NAME with a totally different app?
Is it legal to update an Android app on the Play store with a totally different app under the same package name?
well, there's no such definition "different app".
as long as you are using the same keystore (as #SplatFace Development said) it considers from Google play point of view the same app by definition.
you can change whatever you'd like.
it's legal for sure, and there's no any security problem with that because the user anyway would have to accept again the new app permissions if they changed at all...
and as I mentioned in the comment -
I almost sure google did it with thier own apps when Google Talk replaced with Hangouts.
I don't see why it wouldn't be legal. If they are both your creations, you should be alright. It's basically changing the source code with a normal update, only a lot of changes, and changing the name if you're going to change the name. If you are going to change the name though, that may be more of a problem. I wouldn't be sure. I never did that.
Two apps cannot have the same package name. Android will treat them as the same app, with all the consequences that implies.