2016-03-08 165 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版本,並在此之後運作。