形式
创建一个界面
public interface IBLEPrint
{
void BlePrint();
}
在Android项目中
实施接口
using xxx.Droid;
using xxx
using Xamarin.Forms;
using Xamarin.Forms.PlatformConfiguration.AndroidSpecific;
//using ...
[assembly: Dependency(typeof(BLEPrintService))]
namespace xxx.Droid
{
public class BLEPrintService : IBLEPrint
{
public void BlePrint()
{
//...
using (BluetoothAdapter bluetoothAdapter = BluetoothAdapter.DefaultAdapter)
{
if (bluetoothAdapter == null)
{
throw new Exception("No default adapter");
}
if (!bluetoothAdapter.IsEnabled)
{
throw new Exception("Bluetooth not enabled");
//Intent enableIntent = new Intent(BluetoothAdapter.ActionRequestEnable);
//StartActivityForResult(enableIntent, REQUEST_ENABLE_BT);
// Otherwise, setup the chat session
}
BluetoothDevice device = (from bd in bluetoothAdapter.BondedDevices
where bd.Name == printerName
select bd).FirstOrDefault();
if (device == null)
throw new Exception(printerName + " device not found.");
using (BluetoothSocket _socket = device.CreateRfcommSocketToServiceRecord(UUID.FromString("00001101***")))
{
await _socket.ConnectAsync();
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(input);
await Task.Delay(3000);
// Write data to the device
await _socket.OutputStream.WriteAsync(buffer, 0, buffer.Length);
_socket.Close();
}
}
}
}
}
}