android SDK version - java

How can I fix this problem?
Your 1 version code com.fass.vpnn app includes the SDK
com.unity3d.ads:unity-ads, which collects personal or sensitive data,
including but not limited to Advertising ID, Android ID identifiers,
or an SDK that one of your libraries uses . Persistent device
identifiers cannot be linked to other personal and sensitive user data
or resettable device identifiers as described in the User Data Policy.
Starting at midnight (UTC) on January 11, 2023, new app versions
containing SDK versions that do not comply with the User Data Policy
may be blocked from being made available. If the SDK is available from
your provider, you may want to consider upgrading to a
policy-compliant version of this SDK that does not contain the
offending code or removing it from your app.
Depending on your SDK provider, you can downgrade to 4.0.1 and/or
contact your SDK provider to see if a suitable version will be
available later. Google cannot endorse or recommend third-party
software.
ACTION REQUIRED: Install a new compatible version AND disable the
non-compliant version.
Read the User Data policy for more details and learn how to submit an
updated app for review here.
If you've reviewed the policy and think our decision may have been
incorrect, please contact our policy support team.
I've read some users' comments about this, but they didn't work for me.

Related

requestLegacyExternalStorage is not working in Android 11 - API 30

Google has introduced some changes recently related to storage APIs in API 29 like scoped storage and we opted out by adding 'requestLegacyExternalStorage=true' in Manifest. But now when I targetSdkVersion 30, this no longer seems to work. Some of the files in the download directories were not listing (File.listFiles) after this change.
But now when I targetSdkVersion 30, this no longer seems to work
That is correct. Android 11 (API 30+) requestLegacyExternalStorage=true does nothing and you can no longer "opt-out". It was available in Android 10 to give developers a transition/grace period to be able to migrate to the scoped storage model.
Option 1: Migrate data in your app whilst still targeting API 29, then once you're migrated data is compatible with scoped storage you should be able to release an update targetting API 30 - https://developer.android.com/training/data-storage/use-cases
This can come with its own problems if users skip this version and updates directly from a previous version to the latest and you're stuck with un-migrated data you can't access.
Option 2: It seems that Google sees this obvious caveat and has included a preserveLegacyExternalStorage=true option when targetting API 30 to allow you to migrate data. https://developer.android.com/reference/android/R.attr#preserveLegacyExternalStorage
Going forward you can reference this table for deciding what storage "framework" to use based on the use-case: https://developer.android.com/training/data-storage
There is a potential that some apps simply won't be able to successfully migrate, based on how they interacted with the File API as Google's solution will not encompass all current use-cases and there might not be a migration path.
For instance, I released an app a couple of years ago that allowed users to update album artwork using MediaStore and ContentResolver to update the data for the album artwork image - this was stored in shared storage. Having looked at the Android 10+ AOSP MediaProvider source code it seems that apps that used to use MediaStore to update album artwork to point to a data file no longer works, simply because the MediaProvider internally creates its own artwork in a hidden .thumbnails folder looking directly at the mp3's and using a MediaExtractor, and never references the ContentValues that were inserted to reference the artwork. So even though you can update the artwork yourself, query the MediaStore for it and see it, other apps have to use ContentResolver#loadThumbnail in API 29+ that does not reference your updated values and either creates an artwork lazily, or picks the already generated file in the .thumbnails folder. Obviously, none of this is documented, and I got a massive backlash to my app with negative reviews, yet these changes were breaking changes and completely out of my control and took me looking through AOSP source code to find that Android had fundamentally changed behaviour.
(This wasn't a rant, but an example of how these changes offered no migration path because of fundamental undocumented behaviour to AOSP).
As stated in https://developer.android.com/about/versions/11/privacy/storage there are some changes regarding storage on Android 11:
Android 10 devices
requestLegacyExternalStorage will continue to work regardless of target sdk
Android 11 devices
new installation targetting sdk 29: requestLegacyExternalStorage value is respected
new installation targetting sdk 30: requestLegacyExternalStorage is always false
upgrade from targetting sdk 29 to 30: if preserveLegacyExternalStorage is set then requestLegacyExternalStorage is true (this is pure migration case and this state won't be preserved should user uninstall/reinstall the app)
You're pretty much forced to implement scoped storage at this point. Unless you're ready to migrate just keep targetting sdk 29 as there's no way to enforce legacy storage on Android 11 devices with target sdk 30.
update: play store requires target sdk 30 as of August 2021
Don't do this until early 2021 (said by google):-
If you want to target to android 11, you should use the MANAGE_EXTERNAL_STORAGE permission.
Visit this page for more details: https://developer.android.com/training/data-storage/manage-all-files
Applications that run on Android 11 but target Android 10 (API level 29) can still request the requestLegacyExternalStorage attribute. This flag allows applications to temporarily opt out of the changes associated with scoped storage, such as granting access to different directories and different types of media files.
After updating application to target Android 11, the system ignores the requestLegacyExternalStorage flag.
No need to call "requestLegacyExternalStorage=true" which is not working for Android 11+.
There is a new update in https://github.com/apache/cordova-plugin-media to cover the saving file path issue for android 11+.
If you update "/platforms/android/app/src/main/java/org/apache/cordova/media/AudioHandler.java" and "/platforms/android/app/src/main/java/org/apache/cordova/media/AudioPlayer.java" in your project, then it should be working.
https://raw.githubusercontent.com/apache/cordova-plugin-media/4093f7e14fe65f94ffbef072ed188a0205e78a59/src/android/AudioHandler.java
https://raw.githubusercontent.com/apache/cordova-plugin-media/4093f7e14fe65f94ffbef072ed188a0205e78a59/src/android/AudioPlayer.java

Lowest Android Version Possible For SNMP and PPTP

I'm having to create a new app for our installers and they currently have an app that they use on Android 5.1. It doesn't use either features mentioned in the title but I'm looking to implement that in the new app. I'm just curious what version do the new phones need at minimum to support an app that allows for both of those to be supported.
SNMP is going to be used to make calls to subscriber modules. Itll have to be able to use both Version 1 and Version 2. It'll be completely equipment based.
The PPTP connection will be only for the app itself. I don't want it to default all traffic the phone is using to that connection. Merely only what calls the app makes to the network. Is this even possible?
PPTP
I'd have to assume there are libraries out there for version of Android that didn't include it natively, it looks like v4.0 is the earliest Android version to include PPTP.
"Android includes a built-in (PPTP and L2TP/IPSec) VPN client, which is sometimes called legacy VPN. Android 4.0 (API Level 14)"
https://developer.android.com/guide/topics/connectivity/vpn
SNMP
The best thing I can find for SNMP is an app that uses SNMP on Android 2.3.3. Who knows what library or home-rolled code they used to do it, but it looks like you have some "wiggle room" if you're just needing it for Android v5.x.
https://snmp-agent-4a.en.aptoide.com/
Another link that shows the age of SNMP on Android doesn't say what OS version it's talking about, but we can see the images are of fairly ancient phones. It's circumstantial at best, but it looks promising for your project.
https://www.dpstele.com/snmp/monitoring-smartphone-best-practices.php

How to update Android OS on the device through an App

Is there any way to update the Android OS through an App(Using Android API or any other API/) after checking if a newer Android version is available in the market/Playstore
The Use Case required to be supported here is as follows:
The App starts and checks the version of the installed Android OS
It then finds the version of available Android OS in the
Playstore/other repository for that device
Then it compares the two version and if the available version is
newer, then it installs the new Android version on the device
How can it be implemented , especially the third point ? I do not want to root the device for that, so if there is any way to achieve this, please help ....
There is no API. If your device has an update feature built in (most do), you can decompile the update service and see how it works. If your device does not have an update feature, then you can look at custom ROMs for your device. Once you get ahold of a ROM or an update.zip you want to use, the process cannot be done automatically. The updating takes place in the system recovery mode where the user will have to select the .zip to update. However, if you can decompile and figure out how your manufacturer's update service works, maybe you can pull off an automated process.
There aren't any tutorials or documentation for this, as it is 100% dependent on phone model/OS. You can probably find a flashable ROM for your device, however, but the process is rarely automated. Actually, take a look at ROM Manager in this case, it is a somewhat automated upgrade app. I tried it before and it bricked my phone. Good luck
You would need to know where to ask if there is a newer version. And then is there an upgrade available for that particular device. At that point you could broadcast a request to update. Does not the device know when an update is available?
For updating your android version you would need
Custom Android on you device.(Some more info)
Rooted device.why need rooting?
Now for installing we would need to flash ROM.You would also need to have check for version of the OS available, which depend upon your logic .Generally Samsung ,Sony they use custom android and the updates are pushed over app center( or something like that,not much knowledge) in your case it may be any cloud service or server to check version for your custom android.
When we have a new version, after user accepts to upgrade, a new img file would be downloaded to your device which would be used to upgrade the OS.Please note you would also need a recovery backup method too.There are some Commands that can be used to extract and download the OS through your code.
I haven't implemented it yet but this is the procedure i could find.
I hope this would help others.
UPDATE
I have got some new information about how can we initiate the update through code. the Link and there's this another link that can be great help.
In both the examples they are using SystemRcovery class with intallerPackage API.

Why I still cannot use fragment when using Eclipse(Android)?

First, I've upgraded to API-21 including eclipse android toolkit and SDK.
I want to use the fragment feature and still want to support those 2.x phones
I know that I must use support library - v4.
But the problem is when I create an Android project, it always shows "Navigation Type "Scrollable Tabs + Swipe" requires a minimum SDK version of at least 11, and the current min version is 8".
How could I solve this tricky problem?
======================================
My settings:
Minimum required SDK: API 8
Target SDK: API 17
Compile With: API 17
======================================
Thanks!!
Eclipse's project templates make use of features that require a number of APIs (mostly ActionBar), which are not provided by the support library. While you can use Fragments, with the support library, you don't have the other features associated with the APIs.
You could still implement swipe/scroll tabs by yourself though. However, you will have to create them manually (and not using Eclipse's built-in project templates).
You will need to use android.support.v4.view.PagerTabStrip, android.support.v4.view.ViewPager and android.support.v4.app.Fragment. The documentation is pretty clear and should point you in the right direction.

wacom device java sdk

I have Wacom device STU 500 . I work on a project module for signing pdf files.
I didn't find any Java SDK-API to query the device with . is there an elegant way to do this from java code ?
As the previous posts indicate, contact the your regional Wacom office to obtain the SDK. They will email you a 'SDK Approval Form' where you have to fill in certain details. Once they verify the document as well as your credentials they would send you a link to download the SDK.
Please note that there are two types of SDK's. They are called the 'Low-Level' SDK and the 'Signature' SDK by Wacom. The 'Low-Level' SDK is free and other other isn't. The 'Low-Level' SDK should suffice unless you need biometric/forensic/security/verification and other capabilities for which you need to select the 'Signature' SDK.
Since you are specifically asking to sign PDF files, check out Wacom's 'Sign | Pro PDF' SDK.
This is a late reply, but I hope it helps you or others working with Wacom.
You have to ask Wacom directly to get the existing SDK.
From Wacom FAQ:
3.23. How can I program an STU-300, STU-500, or STU-520 Signature (signpad) Tablet?
You can obtain an STU-300, STU-500, or STU-520 SDK to program in C++, C# or Java by contacting Wacom Customer Care in your region.
http://www.wacom.com/en/CustomerCare/HelpRequest/ContactTechnicalSupport.aspx
You can find more information here: http://signature.wacom.eu/products/software/signature-sdk.
ThereĀ“s a contact form where you can ask for the SDKs.

Categories

Resources