Skip to content
Snippets Groups Projects
Commit cbe29e19 authored by Paul-Winpenny's avatar Paul-Winpenny
Browse files

working on VS studio android emulator, need to get running on an actual device.

parent 5b0161b7
No related branches found
No related tags found
1 merge request!1App now has a basic structure and BLE support
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:versionCode="1">
<application android:allowBackup="true" android:icon="@mipmap/appicon" android:supportsRtl="true" android:label="RoboBin"></application>
<!-- Required permissions -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
<uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
</manifest>
\ No newline at end of file
......@@ -61,6 +61,7 @@
<PackageReference Include="Microsoft.Maui.Controls" Version="8.0.91" />
<PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="8.0.91" />
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.1" />
<PackageReference Include="Microsoft.Maui.Essentials" Version="8.0.91" />
<PackageReference Include="Plugin.BLE" Version="3.1.0" />
<PackageReference Include="Shiny" Version="2.7.3" />
<PackageReference Include="Shiny.BluetoothLE" Version="3.3.3" />
......
......@@ -2,8 +2,8 @@
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<IsFirstTimeProjectOpen>False</IsFirstTimeProjectOpen>
<ActiveDebugFramework>net8.0-windows10.0.19041.0</ActiveDebugFramework>
<ActiveDebugProfile>Windows Machine</ActiveDebugProfile>
<ActiveDebugFramework>net8.0-android</ActiveDebugFramework>
<ActiveDebugProfile>Pixel 5 - API 34 (Android 14.0 - API 34)</ActiveDebugProfile>
<SelectedPlatformGroup>Emulator</SelectedPlatformGroup>
<DefaultDevice>pixel_5_-_api_34</DefaultDevice>
</PropertyGroup>
......
......@@ -5,6 +5,7 @@ using RobobinApp.Views;
using Plugin.BLE;
using Plugin.BLE.Abstractions.Contracts;
using Plugin.BLE.Abstractions.Exceptions;
//using Microsoft.Maui.E
namespace RobobinApp.ViewModels
{
......@@ -29,7 +30,8 @@ namespace RobobinApp.ViewModels
_bluetoothLE = CrossBluetoothLE.Current;
_adapter = _bluetoothLE.Adapter;
ScanDevices(); // Start scanning for devices
// Check and request Bluetooth permissions before scanning
CheckAndRequestBluetoothPermissions();
}
public BluetoothDevice SelectedDevice
......@@ -42,6 +44,29 @@ namespace RobobinApp.ViewModels
}
}
private async void CheckAndRequestBluetoothPermissions()
{
// Check if the Bluetooth scan permission is granted
var status = await Permissions.CheckStatusAsync<Permissions.Bluetooth>();
if (status != PermissionStatus.Granted)
{
// Request permission
status = await Permissions.RequestAsync<Permissions.Bluetooth>();
}
if (status == PermissionStatus.Granted)
{
// Permission granted, proceed with scanning devices
ScanDevices();
}
else
{
// Permission denied, handle accordingly
await Application.Current.MainPage.DisplayAlert("Permissions", "Bluetooth scan permission is required to discover devices.", "OK");
}
}
public async Task OnGoHome()
{
await Application.Current.MainPage.Navigation.PushAsync(new MainPage());
......
......@@ -8,6 +8,7 @@ using Shiny.BluetoothLE;
namespace RobobinApp.ViewModels
{
//https://docs.ros.org/en/jazzy/Concepts/Intermediate/About-Domain-ID.html <- Should just work once wifi connection
public class MainPageViewModel : INotifyPropertyChanged
{
private bool _isBusy;
......
......@@ -6,4 +6,5 @@ public partial class ConnectionPage : ContentPage
{
InitializeComponent();
}
}
\ No newline at end of file
......@@ -42,7 +42,7 @@
<Frame BackgroundColor="Lavender" BorderColor="Black" CornerRadius="5"
HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"
Grid.Column="2" Grid.Row="0">
<Label Text="Right Box" HorizontalOptions="Center" VerticalOptions="Center"/>
<Button Text="Right Box" HorizontalOptions="Center" VerticalOptions="Center" Command="{Binding ConnectToRobobinCommand}"/>
</Frame>
</Grid>
</ContentPage>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment