This library is deprecated moving forward. New packages have been uploaded that are no longer a C# port of the library, but a direct binding of the Java code:
- https://www.nuget.org/packages/Xamarin.Google.Android.Vending.Licensing
- https://www.nuget.org/packages/Xamarin.Google.Android.Vending.Expansion.Downloader
- https://www.nuget.org/packages/Xamarin.Google.Android.Vending.Expansion.ZipFile
There are several breaking changes, although the API is fairly similar - mostly namespace/type changes. All the changes are documented here, along with their replacements:
More detailed docs can be found here:
The new library is located here:
This is the C# implementation of Google's License Verification Library (r2) and the Android Play Expansion Library (r3)
The downloader currently, correctly, notices that it is on mobile data and asks the user to make a decision on to wait for wifi or use mobile.
There are no dependencies other than the included projects. There should be two:
- the LicenseVerificationLibrary (which requires nothing)
- the ExpansionDownloader (which requires the LVL).
No jars and no resources are needed.
What you do need to add is the required permissions. Either in the manifest:
<uses-permission android:name="com.android.vending.CHECK_LICENSE">
or as an assembly attribute:
[assembly: UsesPermission("com.android.vending.CHECK_LICENSE")]
You can even use the LVL without the Downloader for pure licensing purposes. The other projects are either:
- Samples (to test using one of my accounts on Play, which you can change)
- Tests (Unit Tests?).
This is most of the work done and it just needs cleaning and refactoring. I also then want to make it friendlier towards .NET developers and using the C#/.NET types instead of the Java types.
I suppose the most important thing to note is that this is an almost direct translation of the Java code. This is not really bad, but some things could have been done better/differently in C#. eg: The IPCs could be better implemented, but I haven't gotten around to that yet.
The ToDo list is sort of the open issues part on GitHub. Please feel free to add any new issues as new things come up. Or any suggestions for improvements.
This code is released under the Apache 2.0 License. http://www.apache.org/licenses/LICENSE-2.0.html