My problem is there is a set of apps called good lock apps made by Samsung But they aren't supported by One UI core devices and some, not with android 11, So I would like to increase the API level of the application, add any android source code as well as somehow make it accessible by one UI core devices(By changing boolean).In Android studio, I tried the above but the code reverts back to the original, and am not able to run it, So can someone please say if the above is possible, if possible say how to proceed and if not please say what can be done alternatively, Thank you!
If it's a third party application, then the app would reside within data partition. And in any case you should be able to install the new version of a third party app unless you hold version number higher than the one present in the device.
While targeting SDK version higher than 25 make sure that you have REQUEST_INSTALL_PACKAGES to install a new application.
The other option is to uninstall the existing application (at your own risk), and reinstall the compiled version of the apk.
If you still face issues, please attach the logcat information while installing the apk, that could help us to look into the problem further.
Related
I create iOS and Android apps as hybrid app.
My apps send HTTP request to server, and then get HTML,CSS,JS etc.
Users don't need to update my apps until I change native side project.
It means that sometimes my apps version don't changes even I provide new functions or fix bugs.
It's wired for user. I should display increment version number when my apps have changes.
I want to increment version number of my apps even users don't install my apps to update.
Is there any good way to achieve it?
I come up with one idea to directly change setting file like Android manifest file.
However, I don't know whether it's good and works....
It is not possible for iOS, you need to submit new version for version number to change for your app
Also not possible for android as well
I don't think it is possible.
AndroidManifest is XML file attached to your APK and could not be changed when it's installed - only by application update (I mean installing new APK with incremented version number).
In iOS situation is the same. Version code is attached in Info.plist file which, like AndroidManifest, is just file attached to your application archive and could not be changed.
I don't think you can dynamically change your version code - because this is what you are trying to do.
For Android that's simply possible, for iOS, because of the Sandbox and Apples protections, not. (If not jailbroken)
You could let the app have a settings/information section where it displays current version, and this version will be loaded from your server as well as the HTML, CSS and JS.
I port my android apps for making bb10 builds . Since now from bb10.2.1 update blackberry has introduced a new concept wherein apk's can be directly installed and can be installed in BB10 devices if the manage apps in settings menu of the phone is made ON. My question is that I wanna restrict my users from doing so and not installing the apk's into bb10 . And take download my app only from appworld.
Has anyone faced and has fixed this issue kindly tell me on how to solve the same.
Based on the Android behaviour, I don't think you can restrict users from doing so.
I haven't tried it on BlackBerry but from what you say, that option sounds analogue to the Unknown sources setting under Security settings on Android. If the user enables the installation of applications from unknown sources on their phone, there is now way to prevent the direct install of the apk (by adding something to your apk or any other way).
There is no way to restrict it to BlackBerry World only. If they get the APK, they can load it directly this way. There may be other ways around it though.
If, for example, your app is for sale and people are side loading a pirated copy, you could change your app to be free, and put some advanced functionality in your app behind an in-app purchase. That way they'll be forced to go through the storefront at some point to pay. This takes bigger changes to your app though, and the IAP implementation is likely different between BBW and GPlay.
You could also put in a version check: when your app launches, it checks a special file on your web server to see what the latest version of the app is. If they don't have the latest version, it doesn't let them use the app until they upgrade. This won't prevent side loading or piracy outright, but you can put out updates often enough to make side loading very annoying. When they are roadblocked and told to get the new version, you can link directly to the storefront to encourage them to get the latest version there.
Thirdly, and lastly, if you port your app to a BlackBerry 10 native, cascades, or WebWorks app, the app file is fully protected and can't be pirated or extracted from BlackBerry World (since the platform is secure). That will 100% protect you from piracy on BlackBerry 10.
I hope this helps!
I'm currently involved in an open source project which I regulary release in the Google PlayStore. As the statistics of android-usages show that less than 10% of my users use android 3 or lower I started to wonder if I should switch to Android 4.X. This gives me some more functionality which I can't include at the moment (SettingsFragment for example, which isn't even inside of the support library).
When I release a newer version with higher requirements in the PlayStore - what will happen to my users which don't fulfill this requirements? What about users who want to install my app with low android-versions? Is my app hidden for them as soon as I upgrade the app? Is there any chance that my current version of my app can still be found by lower devices and the newer version is available for newer devices? I would like to avoid having two seperate apps in the playstore as I would lose a few people.
I couldn't find anything in the Google-Docs so I needed to ask for help in this glory community ;)
You can target multiple different APIs using multiple APK's. Just use your current version for old versions and create a new APK for everyone else. More here: http://developer.android.com/google/play/publishing/multiple-apks.html
Hope this helps, let me know if you need more info.
My question is the following: can I have one application on the market, but when the user downloads it, depending on what OS the user is running, she downloads different file - one file for 2.2, other for 2.1, third for 1.5, etc?
No, that is not possible. However, you can have your application respond differently to whatever OS level the device is running. Use android.os.Build to find out what version you are on, then use reflection or conditional class loading to route your behavior accordingly.
OR you can create different apps for each target OS version, name their packages differently (for instance com.example.16, com.example.20 com.example.21) and in each Android.xml specify minimum and maximum API level to the one you target. So the 2.1 version will have both mini and max API level set to 7. Then you publish all of them to the market under the same name.
When a user with an Android 2.1 searches for your app he will see only the one with the package name com.example.21 thus fixing your problem.
It seems appropriate to note that Swype's approach to problems like this is to download an "Installer" application first. (It's not from the Market, but it could just as well be)
Swype's installer uses a login and password to contact a Swype server, and download and install the appropriate .apk for your Android device.
Generally this approach is impractical to a smaller developer, as it requires server setup, etc. But it's another possibility that I thought I should mention.
I've programmed my app with Eclipse and android 2.2. However I think that my app would work for previous version and so it would allow more users to use my app. The problem is that I'm not sure... for instance I'm using Gestures which I think is a more recent feature... but otherwise I'm just using some Button, ListView, and WebView.
So is there a way to detect automatically the Minimum Sdk Version needed ( by checking which function my app is using) ?
I can't download the SDK of each previous version of android and test it until it doesn't work ...
Thanks
I can't download the SDK of each previous version of android and test it until it doesn't work ..
Why cant you? This is what the rest of us do. Create various different Emulators and test it out. I've released many apps by testing this way.
Take a look at the Compatibility page on Android's developer website.
It has some great information on how to make sure your application will work on different versions of Android and how to stop users from downloading the application if they do not have the right features on their device. In your case that would be the gestures feature.
To manage this, Android defines
feature IDs. Every capability has a
corresponding feature ID defined by
the Android platform. For instance,
the feature ID for compass is
“android.hardware.sensor.compass”,
while the feature ID for Live
Wallpapers is
“android.software.live_wallpapers”.
Each of these IDs also has a
corresponding Java-language constant
on the PackageManager class that you
can use to query whether feature is
supported at runtime.
To be totally sure you have to test your app against every platform version you target. Otherwise users of your app will do it for you (and that might be not good for app rating).
On the https://developer.android.com/about/dashboards/index.html page you can see the latest up-to-date platforms share info. So just decide how many potential users you're going to leave without your app :)