私はクロスプラットフォームアプリケーションを開発中です。Bluetoothデバイスで印刷 - Xamarin
飲料に.Droidでクラス
[assembly: Xamarin.Forms.Dependency(typeof(clsBluetooth))]
namespace Bluetooth.Droid
{
public class clsBluetooth : IBluetooth
{
private BluetoothAdapter adapter = BluetoothAdapter.DefaultAdapter;
private BluetoothSocket socket = null;
private BufferedWriter outReader = null;
private BluetoothDevice device = null;
public void Imprimir(string pStrNomBluetooth, int intSleepTime, string pStrTextoImprimir)
{
try
{
string bt_printer = (from d in adapter.BondedDevices
where d.Name == pStrNomBluetooth
select d).FirstOrDefault().ToString();
device = adapter.GetRemoteDevice(bt_printer);
UUID applicationUUID = UUID.FromString("00001101-0000-1000-8000-00805f9b34fb");
socket = device.CreateRfcommSocketToServiceRecord(applicationUUID);
socket.Connect();
outReader = new BufferedWriter(new OutputStreamWriter(socket.InputStream));
outReader.WriteAsync(pStrTextoImprimir);
}
catch (Exception)
{
throw;
}
finally
{
}
}
public ObservableCollection<string> PairedDevices()
{
ObservableCollection<string> devices = new ObservableCollection<string>();
foreach (var bd in adapter.BondedDevices)
devices.Add(bd.Name);
return devices;
}
}
}
インタフェース:
は私が
が、私はこのコードを使用するプリンタのIntermec PR2に印刷する必要があります私は.Droidでクラスを入力し、それをデバイスに接続していないようです文socket.Connect();
を実行したとき
DependencyService.Get<IBluetooth>().Imprimir(SelectedBthDevice,200,"HolaMundo");
方法の
public interface IBluetooth
{
ObservableCollection<string> PairedDevices();
void Imprimir(string pStrNomBluetooth, int intSleepTime, string pStrTextoImprimir);
}
コールは私のエラーが発生します。代わりに1既存のセキュアの
socket = device.CreateInsecureRfcommSocketToServiceRecord(applicationUUID);
: 誰かがスクリプトを確認したり、コードがデバイスへの接続のような安全でないソケット通信を作成してみてください正しく
ソケットを接続するときに何か例外がありますか? – Cheesebaron
エラーは何ですか? – Demitrian
@Cheesebaron申し訳ありませんが、エラーが含まれていることを忘れないでください:読み取りに失敗しました。ソケットが閉じられているかタイムアウトしました。読み取り:-1 –