Вы должны манипулировать MODIFY_AUDIO_SETTINGS
для правильного пальца, если подключена Bluetooth-гарнитура. После того как вы правильно определили свои намерения и правильно настроили свой манифест, он должен работать. Это для разъема для наушников, но оно может быть применено к Bluetooth, если вы используете вышеупомянутое.
Вот два сайта, которые могут помочь объяснить это более подробно:
- http://www.grokkingandroid.com/android-tutorial-broadcastreceiver/
- http://www.vogella.com/articles/AndroidBroadcastReceiver/article.html
Вы должны определить свое намерение; в противном случае он не получит доступ к системной функции. Вещательный приемник; будет предупреждать о вашем приложении изменений, которые вы хотите прослушать.
Каждый приемник должен быть подклассифицирован; он должен содержать onReceive()
. Для реализации onReceive()
вам необходимо создать метод, который будет включать в себя два элемента: Context & Intent.
Скорее всего, услуга была бы идеальной; но вы создадите сервис и определите свой контекст через него. В контексте; вы определите свое намерение.
Пример:
context.startService
(new Intent(context, YourService.class));
Очень простой пример. Однако; ваша конкретная цель - использовать широковещательную передачу по всей системе. Вы хотите, чтобы ваша заявка была извещена о Intent.ACTION_HEADSET_PLUG
.
Как подписаться через манифест:
<receiver
android:name="AudioJackReceiver"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.HEADSET_PLUG" />
</intent-filter>
</receiver>
Или вы можете просто определить с помощью вашего приложения; но. Ваш конкретный запрос; потребуются права пользователя, если вы намерены обнаружить Bluetooth MODIFY_AUDIO_SETTINGS
.
Update:
я неправильно понял ваш вопрос, я думал, что вы пытаетесь найти Bluetooth гарнитуры; не только Bluetooth - это Paired
.
Сверх этого question; они объясняют, как проверить на Paired Bluetooth Devices
.
Импорт пакета Bluetooth.
import android.bluetooth.*;
Установите разрешение.
<uses-permission android:name="android.permission.BLUETOOTH" />
Доступ к Bluetooth-адаптер:
BluetoothAdapter bluetooth = BluetoothAdapter.getDefaultAdapter();
Выполнить проверку, что соединение не null
.
если (bluetooth! = Null) { // Сделаем что-нибудь. }
Убедитесь, что он включен:
if (bluetooth.isEnabled())
{
// Enabled, do some work with Bluetooth
}
else
{
// Not Enabled Do something else.
}
отображения состояния Bluetooth BluetoothAdapter.getState()
По умолчанию выключено; поэтому вам придется включить его.
string state = bluetooth.getState();
status = deviceName + " : " + deviceLocation + " : " + deviceState;
Если для Bluetooth-гарнитуры см мой ответ на http://stackoverflow.com/questions/14991158/using-the-android-recognizerintent-with-a-bluetooth-headset/14993590#14993590 –