Jelajahi Sumber

Digital Key Prototype Mobile Changes

frankvandenbos 4 bulan lalu
induk
melakukan
b2cff92115

+ 12 - 0
PRS.Avalonia/PRS.Avalonia.Android/MainActivity.cs

@@ -1,9 +1,12 @@
 using Android.App;
 using Android.App;
 using Android.Content.PM;
 using Android.Content.PM;
+using Android.OS;
+using AndroidX.Annotations;
 using Avalonia;
 using Avalonia;
 using Avalonia.Android;
 using Avalonia.Android;
 using InABox.Avalonia.Platform;
 using InABox.Avalonia.Platform;
 using InABox.Avalonia.Platform.Android;
 using InABox.Avalonia.Platform.Android;
+using Microsoft.Maui.ApplicationModel;
 
 
 namespace PRS.Avalonia.Android;
 namespace PRS.Avalonia.Android;
 
 
@@ -15,6 +18,12 @@ namespace PRS.Avalonia.Android;
     ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode)]
     ConfigurationChanges = ConfigChanges.Orientation | ConfigChanges.ScreenSize | ConfigChanges.UiMode)]
 public class MainActivity : AvaloniaMainActivity<App>
 public class MainActivity : AvaloniaMainActivity<App>
 {
 {
+    protected override void OnCreate(Bundle? savedInstanceState)
+    {
+        base.OnCreate(savedInstanceState);
+        Platform.Init(this, savedInstanceState);
+    }
+
     protected override AppBuilder CustomizeAppBuilder(AppBuilder builder)
     protected override AppBuilder CustomizeAppBuilder(AppBuilder builder)
     {
     {
 
 
@@ -22,6 +31,9 @@ public class MainActivity : AvaloniaMainActivity<App>
         PlatformTools.Register<IAppVersion,Android_AppVersion>();
         PlatformTools.Register<IAppVersion,Android_AppVersion>();
         PlatformTools.Register<IImageTools, Android_ImageTools>();
         PlatformTools.Register<IImageTools, Android_ImageTools>();
         PlatformTools.Register<IPdfRenderer, Android_PdfRenderer>();
         PlatformTools.Register<IPdfRenderer, Android_PdfRenderer>();
+        PlatformTools.Register<IBluetooth, Android_Bluetooth>();
+        
+        
         
         
         return base.CustomizeAppBuilder(builder)
         return base.CustomizeAppBuilder(builder)
             .WithInterFont();
             .WithInterFont();

+ 9 - 0
PRS.Avalonia/PRS.Avalonia.Android/Properties/AndroidManifest.xml

@@ -1,5 +1,14 @@
 <?xml version="1.0" encoding="utf-8"?>
 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto">
 <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto">
+	
 	<uses-permission android:name="android.permission.INTERNET" />
 	<uses-permission android:name="android.permission.INTERNET" />
+	
+	<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
+	<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
+	<uses-permission android:name="android.permission.BLUETOOTH" />
+	<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
+	<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
+	<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
+	
 	<application android:label="PRS.Avalonia" android:icon="@drawable/Icon" />
 	<application android:label="PRS.Avalonia" android:icon="@drawable/Icon" />
 </manifest>
 </manifest>

+ 2 - 0
PRS.Avalonia/PRS.Avalonia.Desktop/Program.cs

@@ -1,6 +1,7 @@
 using System;
 using System;
 using Avalonia;
 using Avalonia;
 using InABox.Avalonia.Platform;
 using InABox.Avalonia.Platform;
+using InABox.Avalonia.Platform;
 using InABox.Avalonia.Platform.Desktop;
 using InABox.Avalonia.Platform.Desktop;
 
 
 
 
@@ -19,6 +20,7 @@ sealed class Program
     public static AppBuilder BuildAvaloniaApp()
     public static AppBuilder BuildAvaloniaApp()
     {
     {
         PlatformTools.Register<IPdfRenderer, Desktop_PdfRenderer>();
         PlatformTools.Register<IPdfRenderer, Desktop_PdfRenderer>();
+        PlatformTools.Register<IBluetooth, Desktop_Bluetooth>();
         
         
         return AppBuilder.Configure<App>()
         return AppBuilder.Configure<App>()
             .UsePlatformDetect()
             .UsePlatformDetect()

+ 4 - 1
PRS.Avalonia/PRS.Avalonia/Modules/EquipmentModule/EquipmentList/EquipmentListViewModel.cs

@@ -3,6 +3,7 @@ using System.Threading.Tasks;
 using Comal.Classes;
 using Comal.Classes;
 using CommunityToolkit.Mvvm.ComponentModel;
 using CommunityToolkit.Mvvm.ComponentModel;
 using CommunityToolkit.Mvvm.Input;
 using CommunityToolkit.Mvvm.Input;
+using InABox.Avalonia.Platform;
 using InABox.Core;
 using InABox.Core;
 using PRS.Avalonia.Components;
 using PRS.Avalonia.Components;
 
 
@@ -33,6 +34,8 @@ public partial class EquipmentListViewModel : ModuleViewModel
     [RelayCommand]
     [RelayCommand]
     private void SelectEquipment(EquipmentShell shell)
     private void SelectEquipment(EquipmentShell shell)
     {
     {
-        
+        Guid service = Guid.Parse("4fafc201-1fb5-459e-8fcc-c5c9c331914b");
+        Guid characteristic = Guid.Parse("beb5483e-36e1-4688-b7f5-ea07361b26a8");
+        PlatformTools.Bluetooth.WriteAsync("64:e8:33:71:74:11", service, characteristic, [0x31]);
     }
     }
 }
 }