CompanionDeviceService не запускаетсяAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 CompanionDeviceService не запускается

Сообщение Anonymous »

Я пытаюсь настроить классическую реализацию устройства-компаньона Bluetooth, но служба никогда не вызывается, когда устройство находится в зоне действия или даже подключается или отключается от него.
Вот как работает служба определяется в манифесте, а также в разрешениях и класс обслуживания

Код: Выделить всё

@RequiresApi(Build.VERSION_CODES.S)
class MyCompanionService: CompanionDeviceService() {

override fun onRebind(intent: Intent?) {
super.onRebind(intent)
Log.d("MyCompanionService", "Rebind ${intent.toString()}")
}

override fun onUnbind(intent: Intent?): Boolean {
Log.d("MyCompanionService", "Unbind ${intent.toString()}")
return super.onUnbind(intent)
}

override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
Log.d("MyCompanionService", "onStartCommand ${intent.toString()}")
return super.onStartCommand(intent, flags, startId)
}

override fun onStart(intent: Intent?, startId: Int) {
super.onStart(intent, startId)
Log.d("MyCompanionService", "onStart ${intent.toString()}")
}

override fun onCreate() {
super.onCreate()
Log.d("MyCompanionService", "onCreate")
}

override fun onDeviceAppeared(address: String) {
super.onDeviceAppeared(address)
Log.d("MyCompanionService", "onDeviceAppeared ${address}")
}

override fun onDeviceAppeared(associationInfo: AssociationInfo) {
super.onDeviceAppeared(associationInfo)
Log.d("MyCompanionService", "onDeviceAppeared ${associationInfo}")
}

override fun onDeviceDisappeared(associationInfo: AssociationInfo) {
super.onDeviceDisappeared(associationInfo)
Log.d("MyCompanionService", "onDeviceDisappeared ${associationInfo}")
}

override fun onDeviceDisappeared(address: String) {
super.onDeviceDisappeared(address)
Log.d("MyCompanionService", "onDeviceDisappeared ${address}")
}

override fun onDestroy() {
super.onDestroy()
Log.d("MyCompanionService", "onDestroy")
}
}
и, согласно сопутствующему диспетчеру устройств, именно так я настраиваю наблюдение за устройством

Код: Выделить всё

private fun startCompanionAppPair() {
val deviceFilter: BluetoothDeviceFilter = BluetoothDeviceFilter.Builder().build()

val pairingRequest: AssociationRequest = AssociationRequest.Builder()
.addDeviceFilter(deviceFilter)
.build()

deviceManager.associate(
pairingRequest,
object : CompanionDeviceManager.Callback() {
@Deprecated("Deprecated in Java")
override fun onDeviceFound(chooserLauncher: IntentSender) {
startIntentSenderForResult(
chooserLauncher,
SELECT_DEVICE_REQUEST_CODE, null, 0, 0, 0
)
}

override fun onFailure(error: CharSequence?) {
// Handle the failure.
println(error.toString())
}
}, null
)

}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
when (requestCode) {
SELECT_DEVICE_REQUEST_CODE -> when (resultCode) {
Activity.RESULT_OK ->  {
// The user chose to pair the app with a Bluetooth device.
//val deviceToPair: ScanResult? =
val deviceToPair: BluetoothDevice? = data?.getParcelableExtra(CompanionDeviceManager.EXTRA_DEVICE)
deviceToPair?.let { device ->
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.BLUETOOTH_CONNECT) == PackageManager.PERMISSION_GRANTED) {
device.createBond()
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S)
deviceManager.startObservingDevicePresence(device.address)
}
// Continue to interact with the paired device.
}
}
}
else -> super.onActivityResult(requestCode, resultCode, data)
}
}
мне кажется, что здесь чего-то не хватает, что и вызывает проблему. Обратите внимание, что в настоящее время я тестирую Android 12 на устройстве с приложением и устройстве Android 13 в качестве сопутствующего устройства.

Подробнее здесь: https://stackoverflow.com/questions/756 ... -not-start
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»