Xamarin.forms 使用蓝牙和xamarin表单打印文本
我构建了xamarin项目表单,使用日本RPP-300移动打印机打印文本。我使用Xamarin.forms 使用蓝牙和xamarin表单打印文本,xamarin.forms,xamarin.android,Xamarin.forms,Xamarin.android,我构建了xamarin项目表单,使用日本RPP-300移动打印机打印文本。我使用 using (BluetoothAdapter bluetoothAdapter = BluetoothAdapter.DefaultAdapter) { if (bluetoothAdapter == null) { throw new Exception("No default adapter");
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();
}
}
}
在project.Droid中。如何在project xamarin应用程序中调用using方法?您可以使用
以形式
创建一个接口
public interface IBLEPrint
{
void BlePrint();
}
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();
}
}
}
}
}
}
在Android项目中
实现接口
public interface IBLEPrint
{
void BlePrint();
}
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();
}
}
}
}
}
}