提示用户在Xamarin Forms中启用蓝牙

时间:2017-05-03 05:55:23

标签: c# xamarin xamarin.ios xamarin.android

我是否可以使用任何解决方法来提示用户在Xamarin Forms / C#中启用蓝牙?

类似于带有“是”或“否”的显示提醒,用于提示用户在未启用时打开蓝牙。

如果用户选择“是”,则启用蓝牙。

请帮我在Android和iOS上实现这一目标!提前谢谢。

2 个答案:

答案 0 :(得分:3)

在iOS上,如果不使用私有API(苹果公司在App Store中不允许),您无法以编程方式更改蓝牙,您可以做的最多就是使用此代码将用户重定向到蓝牙设置(请注意它只适用于真实设备):

// Is bluetooth enabled?
var bluetoothManager = new CoreBluetooth.CBCentralManager();
if (bluetoothManager.State == CBCentralManagerState.PoweredOff) {
    // Does not go directly to bluetooth on every OS version though, but opens the Settings on most
    UIApplication.SharedApplication.OpenUrl(new NSUrl("App-Prefs:root=Bluetooth")); 
}

在Android上:

Android.Bluetooth.BluetoothAdapter bluetoothAdapter = BluetoothAdapter.DefaultAdapter;
// is bluetooth enabled?
bluetoothAdapter.IsEnabled;

bluetoothAdapter.Disable();
// or
bluetoothAdapter.Enable();

此方法需要BLUETOOTHBLUETOOTH_ADMIN权限。

答案 1 :(得分:1)

    in xamarin forms

    if(await DisplayAlert(null,"Enable Bluetooth","Yes", "No"))
    {
       // Enablebluetooth here via custom service
    }


For bluetooth implementation download this in nugget
https://github.com/tbrushwyler/Xamarin.BluetoothLE/ or you can implement your own


//IN PCL
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Test.App
{
    public interface IBluetoothService
    {
        void OpenBluetooth();

    }
}




In Android
using System;
using BluetoothLE.Core;
using Android.Bluetooth;
using Java.Util;
using System.Collections.Generic;
using BluetoothLE.Core.Events;

namespace Test.App.Droid.Services
{
    public class BluetoothService : IBluetoothService
    {

        public void OpenBluetooth()
        {
        //native code here to open bluetooth
        }

    }

}

// register it on mainactivity



// do the same in ios