Я работаю над приложением музыкального плеера.Когда я захожу в машину и запускаю ее, машина автоматически подключается через Bluetooth
, но, разумеется, она не запускает воспроизведение мультимедиа.
Теперь я хочу пойматьв моем приложении, если какое-либо устройство просто подключилось к моему телефону через Bluetooth
, чтобы начать воспроизведение музыки.Я имею в виду:
1.) Липкая служба (которая всегда включена)
2.) Приемник вещания (для обработки входящих намерений)
Но я не могу показатьсянайти любой BroadcastReceiver
, который срабатывает, как только «любое устройство ПРОСТО подключено через Bluetooth
».
Это то, что я пытался для BroadcastReceiver
(еще не в службе)
[BroadcastReceiver]
public class BecomingNoisyReceiver : BroadcastReceiver
{
public override void OnReceive(Context context, Intent intent)
{
//tests
if (BluetoothA2dp.ActionConnectionStateChanged.Equals(intent.Action))
{
Activity_Player.Instance.PlayOrPauseLogic();
Toast.MakeText(context, "0", ToastLength.Short).Show();
}
if (BluetoothA2dp.ActionPlayingStateChanged.Equals(intent.Action))
{
Activity_Player.Instance.PlayOrPauseLogic();
Toast.MakeText(context, "1", ToastLength.Short).Show();
}
if (BluetoothAdapter.ActionConnectionStateChanged.Equals(intent.Action))
{
Activity_Player.Instance.PlayOrPauseLogic();
Toast.MakeText(context, "2", ToastLength.Short).Show();
}
if (BluetoothAdapter.ActionDiscoveryFinished.Equals(intent.Action))
{
Activity_Player.Instance.PlayOrPauseLogic();
Toast.MakeText(context, "3", ToastLength.Short).Show();
}
if (BluetoothAdapter.ActionStateChanged.Equals(intent.Action))
{
Activity_Player.Instance.PlayOrPauseLogic();
Toast.MakeText(context, "4", ToastLength.Short).Show();
}
if (BluetoothDevice.ActionFound.Equals(intent.Action))
{
Activity_Player.Instance.PlayOrPauseLogic();
Toast.MakeText(context, "5", ToastLength.Short).Show();
}
if (BluetoothDevice.ActionPairingRequest.Equals(intent.Action))
{
Activity_Player.Instance.PlayOrPauseLogic();
Toast.MakeText(context, "6", ToastLength.Short).Show();
}
if (BluetoothDevice.ActionAclConnected.Equals(intent.Action))
{
Activity_Player.Instance.PlayOrPauseLogic();
Toast.MakeText(context, "7", ToastLength.Short).Show();
}
}
}
Вы видите, что я установил тосты, чтобы увидеть, какое из намерений срабатывает, когда моя машина подключается к моему телефону.К сожалению, никто не сделал.Однако я знаю, что BroadcastReceiver
определенно работает, поэтому здесь должна быть еще одна проблема.
У кого-нибудь есть опыт здесь?Спасибо:)