Debug .NET MAUI Android apps with Android work profile
An Android Work Profile is a feature that allows you to separate work apps and data from personal apps and data on the same device. This is particularly useful for maintaining privacy and security in a corporate environment. However when you are developing an app for your company, who’s got these configurations on their mobile devices, you might find yourself in a tricky solution, because VS Code simply installs the app on the workprofile and on the normal profile aswell, but only can run with debug on the normal profile without any configuration. Get the users of the Android device To list users on an Android device using ADB (Android Debug Bridge), you can use the following command: This command will display a list of users on the device, including their user IDs. For example, the output might look something like this: Configure the .csproj to launch the app on work profile Insert the following line within the <PropertyGroup> section of your .csproj file: This attribute specifies the user ID for the Android Work Profile. The user ID 10 is commonly used for work profiles, but you should verify this for your specific setup. Last but not least: Hit F5 and Run your project 🙂 Remark: This solution is only working in Visual Studio for Windows, and Visual Studio Code on mac.
Resizing the screen when an Entry gets focused in .NET MAUI
When an entry field gets focused, the software keyboard appears, potentially covering the entry field. To provide a better user experience, you need to adjust the screen layout so that the entry field remains visible. First, create a parent class for your views, deriving from ContentPage, and add a HaveKeyboardOffsetProperty. iOS Solution: Next, create the PageElementMapper class to handle the keyboard appearance and adjust the screen layout. Finally, register the mapper in the MauiProgram.cs file. Android solution: On Android, you can use a PropertyChanged method of the HasKeyboardOffset: Remarks The provided solution offers a way to manage this in .NET MAUI on iOS. However, always be open to improvements and share your solutions with the community for better practices. This might not be the best solution to do it.
.NET MAUI Hide software keyboard when tapping out of an Entry on iOS
To hide the software keyboard when the user taps outside the entry field, set the HideSoftInputOnTapped property to True in your ContentPage definition. Please note that the HideSoftInputOnTapped property might not work as expected when tapping on certain controls like ScrollView. In such cases, you might need to implement a custom behavior to handle keyboard dismissal.
Resolving SQLite issues for .NET MAUI
Recently, while working on ExampleApp, we faced two significant errors and found effective solutions for both. Here’s a detailed account of the problems and their resolutions. System.TypeInitializationException To resolve this error, we needed to install the latest NuGet package for SQLitePCLRaw.bundle_green. This package ensures that the necessary SQLite libraries are included in the project. Add the following package reference with the latest version to your project: In the AppDelegate.cs file, add the following line to the CreateMauiApp method: System.ExecutionEngineException in iOS Release Mode This error occurs due to the JIT compilation attempt in AOT-only mode on iOS. The solution is to install this specific version of the sqlite-net-pcl.It will ONLY work with 1.7.355 or below. This solution is also applicable to Xamarin projects.
Customizing .NET MAUI Map’s pin Z-Order, Rotation, and Anchor point – Android
This post will build upon the excellent tutorial on customizing map pins in .NET MAUI by Vladislav Antonyuk, and focus on adding these specific adjustments for Android. Define the Anchor Points enum, get a method to return anchor floats We start by defining an enum to represent the different anchor points. A helper method, GetAnchorPoint, will return the appropriate anchor coordinates based on the chosen enum value. This method returns the normalized coordinates for each anchor point, which can then be applied to the pin’s icon. Modifications to the Custom Map Handler Now, let’s focus on the custom map handler, where you’ll need to modify how each pin is added to the map. Following the setup from Vladislav’s tutorial, you only need to adjust the following parts in the OnMapReady method for Android:
Hi, I am András,
I am a seasoned software engineer from Budapest, Hungary with a strong focus on mobile app development using .NET MAUI and Xamarin.Forms. My expertise also extends to website building for my happy customers and other complex system designing. I am passionate about developing well-organized, maintainable software solutions.