Unity3d Android/Windows app integration with a library - c#

I have a Windows application built using unity3d. The same source code is also used to build an android app. And for this app to access a remote database, I created a Restful service available as a .dll
My question is, is there a way my unity3d based android app use this .dll? I read about ELF32 formats. Not sure how to generate one.
I have the source code for the .dll and ideally I would like a common library to be used/called by both my windows/android app. But am not sure about a common format. Any ideas ?

Related

UWP / Desktop-Bridge communication using (Packaged) COM

I'm currently developing a UWP application that now needs access to APIs that are normally not accessible by apps in an AppContainer.
As I'm not (yet) able to migrate to WinUI3, I want to try using DesktopBridge to do the otherwise restricted work.
As both processes have to communicate with each other, I thought of COM as it should make things relatively seamless once everything has been set up.
According to this page this should be possible using "Packaged Com".
I now have...
An Out-of-Process Com Server (c# net5.0) that is accessible by non-packaged win32 apps (e.g., PowerShell) but not my own UWP App.
The UWP App with the main logic and UI.
A Packaging Project, which creates a package out of both projects.
(Manifest)
The code is on GitHub: Repo.
Does someone have an idea how to solve this problem or got an alternative for IPC?
PS: Tutorials I used
Packaged Com
Out-Of-Proc COM in c#
Packaging / DesktopBridge
So if I understand you correctly, you want to communicate between a UWP app and a Win32 app, and these two apps are packaged inside a Windows Application Package Project. Please let me know if it is not correct.
For your scenario, since the two apps are packaged together with desktop bridge, I'd suggest you use the App Service. App service could be used not only between UWP apps but also between the UWP app and desktop app.
These are the detailed steps:
You need to declare the AppService connection in the Manifest file of the package project.
You need to call the App service API in the win32 application.
You need to handle the connection in the App.xaml.cs in the UWP app
You could check the detailed code and sample from Stefan Wick's blog - UWP with Desktop Extension – Part 3.

launching UWP/Desktop bridge exe doesn't work correctly using FullTrustLauncher

So I was working on a project that needs a .net 3.5 framework API. So since I can't use the API directly I decided to use communication using a bridge between a UWP/WPF app in order to use the API.
Now I have followed the steps in here: https://mtaulty.com/2016/10/12/windows-10-1607-uwp-apps-packaged-with-companion-desktop-apps/
So when launching the app from the exe directly it would work fine. However if I am to launch it it is unable to load the API.
Any idea of what I can do to deal with it? Or is there a better way to implement a .net 3.5 api in UWP?
Why does FullTrustLauncher stop the app from working correctly? Would packaging the APP in something like ILMerge help?
Or are there any ideas I can do to deal with this issue?
Edit: here is the sdk I have been using with its documentation
http://sdk.emiratesid.ae/page/Downloads.aspx
It also contains sample projects in forms however as mention the issues arise when porting to uwp

How to distribute a DeskBand via the Windows Store

I have a Deskband DLL written in C++ that is registered via calling regsvr32 mydeskband.dll. The Deskband has a configuration app written in C#, that I can likely convert to a UWP app using the desktop app converter. As far as I know, there isn't a way to distribute DLL that requires registration via the Windows store.
My question is, what is the best way for me to distribute this entire package via the Windows Store? My thought is I might only distribute the configuration app via the Windows store and have the app link to an online download of the exe file for installing the Deskband DLL, but this is cumbersome and messy. Is there a better way?
The Desktop App Converter and Windows 10 Creator's edition now supports out-of-proc COM servers. See here.
Registration is done in the AppxManfest.xml file. Not all scenarios are supported, but its worth a try to see if this will work for you.
If so, you'll be able to distribute your extension through the Windows Store.

How do I share a sqlite database between a Xamarin app and Java Android app

As the title says I am wanting to share a Sqlite database between an Android app written in Java and one written in C# using Xamarin. I can successfully share a database between two Java apps (With the help of this question) but when I try the same thing in Xamarin I am getting the following error:
Android.Database.Sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
I think I have two problems.
I am not correctly setting the Shared UserId. Currently I am placing the following attribute above my main activity.
[Register("my.user.id")]
I tried using the android:sharedUserId="my.user.id" in the Manifest file but that was throwing errors and wouldn't deploy to my device.
I don't know how the whole signing of the app works. So maybe my device sees the two apps as coming from a different publisher for each device and is not allowing the two to share context.
EDIT :
Just wanted to add how I signed both applications with the same certificate for future refrence.
The Android cert is noramlly "C:\Users\userName\.android\debug.keystore" and the Xamarin cert is noramlly in "C:\Users\userName\AppData\Local\Xamarin\Mono for Android\debug.keystore". I built the Xamarin app first so I copied the debug.keystore file from the xamarin folder to the android one. (I'm sure it would work the other way around but haven't tested it)
Xamarin.Android does not support SharedUserId via an ApplicationAttribute. (I guess no one every filed an issue about it)
Ref: Android.App.ApplicationAttribute
Add your shared user id via the manifest and it will work fine:
Example:
<application android:allowBackup="true" android:sharedUserId="com.sushihangover" android:icon="#mipmap/icon" android:label="#string/app_name"></application>
Note: Make sure that you manually uninstall both apps, add the sharedUserId, rebuild and reinstall both apps.
Note: Make sure that you are using the same signing certificate for both your Java and Xamarin apps.

Is there a project type for classic assembly + universal Apps

I'd like to create a small Web-Service on my Raspberry Pi2, which uses the Project Types "Universal Windows".
The Problem is, I'd like to contact this Web-Service via an App running on my PC. Since this is using the LyncSDK, it has to be a Classic Windows App.
My problem: I'd like to have a shared Model-Assembly to assure I use the same Objects for the Serialization.
In this Assembly I'd need to use the Windows.UI.Color-Enum: https://msdn.microsoft.com/en-us/library/windows/desktop/bb189018.aspx
The closest Project-Type I found so far, was the "Class Library (Portable for iOS, Android and Windows), but I can't use the mentioned Enum.
Is there some Project, which bridges this Gap? The other Workarround I see so far is to save the RGB-Values.

Categories

Resources