私はアンドロイド用のブルートゥースコントローラをプログラミングしています。私はBluetoothをオンとオフに切り替えることができましたが、近くのデバイスをスキャンする必要があります。これらは、スキャンが終わるとすぐにポップアップメニューとして表示したいです。それから、あなたが望むデバイスをクリックしてそれに接続する必要があります。Xamarin Bluetooth。ポップアップメニューにスキャンを表示し、接続してください
ペアリングされていないデバイスにも接続する必要があることに注意してください。 、ポップアップメニューが画面の大部分をカバーするような「ビッグ」でなければなりません...(ボタンのみ-ポップアップが好きではありません)
namespace BluetoothController
{
[Activity(Label = "BluetoothController", MainLauncher = true)]
public class MainActivity : Activity, View.IOnTouchListener
{
BluetoothAdapter BTAdapter;
Button button_OnOff, button_Forward, button_Fire, button_Backward, button_Left, button_Right;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.Main);
// Initialize Components
Initialize();
// Get local Bluetooth Adapter
BTAdapter = BluetoothAdapter.DefaultAdapter;
}
public void Initialize()
{
button_OnOff = (Button)FindViewById(Resource.Id.button_onoff);
button_Forward = (Button)FindViewById(Resource.Id.button_forward);
button_Fire = (Button)FindViewById(Resource.Id.button_fire);
button_Backward = (Button)FindViewById(Resource.Id.button_backward);
button_Left = (Button)FindViewById(Resource.Id.button_left);
button_Right = (Button)FindViewById(Resource.Id.button_right);
button_OnOff.SetOnTouchListener(this);
button_Forward.SetOnTouchListener(this);
button_Backward.SetOnTouchListener(this);
button_Left.SetOnTouchListener(this);
button_Right.SetOnTouchListener(this);
button_Fire.SetOnTouchListener(this);
}
// Event handler for Buttons
public bool OnTouch(View v, MotionEvent e)
{
// Handle if Buttons is pressed or released
switch (e.Action)
{
case MotionEventActions.Down:
// Do if pressed
switch (v.Id)
{
case Resource.Id.button_forward:
break;
case Resource.Id.button_backward:
break;
case Resource.Id.button_left:
break;
case Resource.Id.button_right:
break;
case Resource.Id.button_fire:
break;
case Resource.Id.button_onoff:
break;
}
break;
case MotionEventActions.Up:
// Do if released
switch (v.Id)
{
case Resource.Id.button_forward:
break;
case Resource.Id.button_backward:
break;
case Resource.Id.button_left:
break;
case Resource.Id.button_right:
break;
case Resource.Id.button_fire:
break;
case Resource.Id.button_onoff:
if (BTAdapter != null)
{
if (!BTAdapter.IsEnabled)
{
BTAdapter.Enable();
Toast.MakeText(this, "Bluetooth enabled", ToastLength.Short).Show();
System.Threading.Thread.Sleep(5000);
// Display Devices and connect to the clicked one
}
else
{
BTAdapter.Disable();
Toast.MakeText(this, "Bluetooth disabled", ToastLength.Short).Show();
}
}
else
{
Toast.MakeText(this, "Bluetooth not supported", ToastLength.Long).Show();
}
break;
}
break;
}
return true;
}
}
}
私はイベントハンドラでのBluetoothをオンにした後、それを待つ必要があります私はSystem.Threading.Thread.sleep()でこれをしました。
どのように私は発見されたBTデバイスを取ってポップアップメニューに表示することができますか? それに接続するにはどうしたらいいですか?