Galera, estamos fazendo um aplicativo utilizando a Leanback Library para Android TV e preciso saber como ter acesso e reconhecer alguns comandos de um controle remoto. O aplicativo rodará em segundo plano em determinado momento e ao comando do controle deve surgir uma tela. Para rodar em 2o plano BroadCast Receivers acredito que já resolva mas reconhecer os comandos ou numeros do controle remoto já procurei muito , pesquisei e quase não achei nada sobre o assunto apenas tive a ideia de usar BROADCAST RECEIVERS COMO SEGUE:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <receiver android:name=".Receiver.BroadcastReceiverControleRemoto" android:enabled="true" android:exported="false"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </receiver>
package com.example.diego.Receiver; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.KeyEvent; import android.view.View; import com.example.diego.View.CadastrarCanalActivity; /** * Created by Eduardo on 10/11/16. */ public class BroadcastReceiverControleRemoto extends BroadcastReceiver implements View.OnKeyListener { Boolean ativar; public void onReceive(Context c, Intent intent) { ativar = getAtivar(); if (ativar == true) { Intent i = new Intent(c, CadastrarCanalActivity.class); c.startActivity(i); } } @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_0) { ativar = true; return true; } else { ativar = false; return false; } } public Boolean getAtivar() { return ativar; } public void setAtivar(Boolean ativar) { this.ativar = ativar; } }
Este é o código usando BROADCAST RECEIVERS para ativar uma tela ao pressionar o numero "0" no controle da TV, mas não está funcionando, sem o receiver pega , mas precisa estar em segundo plano e ser ativado.......