2016-03-08 203 views
2

我开发了一款在Android中使用蓝牙的应用,效果很好,但在Android TV中尝试使用时遇到了一些问题。可通过Android-TV发现蓝牙

Bluetooth tutorial,我用这个做我的设备可发现:

Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); 
discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300); 
startActivity(discoverableIntent); 

它工作在正常的设备很好,但在Android的电视,我得到一个ActivityNotFoundException

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.bluetooth.adapter.action.REQUEST_DISCOVERABLE (has extras) } 

如果我很好理解,这个异常意味着默认没有一个活动向用户请求请求(我认为默认对话框要求权限)。

那么有没有办法创建我们自己的类的活动(来处理这种行为),或者可能不会向用户请求权限。或者当然,也许我的做法是完全错误的。

我不知道它是否有用,但我正在开发Nvidia SHIELD TV。

回答

0

这可能与清单中的问题有关。你需要申报的活动之一在您的应用程序有能力从

act=android.bluetooth.adapter.action.REQUEST_DISCOVERABLE 

看看这个this answer有关如何在您的清单申报活动的更多信息接收的意图。

+0

谢谢你的回答,但它仍然无法正常工作。普通设备不需要这种意图,所以我不认为这是必需的。 – YoLo

0

ANDROID 6.0 MARSHMALLOW和蓝牙有一些问题。我有一个类似的问题:我不能在Android TV上使用我的应用程序进行发现,但它可以在我的手机上正常工作(并且我没有任何提示)。我放弃了ANDROID 6.0 MARSHMALLOW,并进入了5.3版本,并在此之后运作。