2016-01-14 60 views
0

似乎此信息必须在互联网上某处可用,但我似乎无法找到它。 我想运行我在Amazon Fire电视棒上编写的Android应用程序。我发现一些教程如何在棒上加载应用程序,但我可以找到有关如何让Fire TV遥控器与应用程序一起使用的信息。使用Fire TV遥控器控制Android应用程序

该应用程序的主要用户界面包括大型瓷砖(RelativeLayout),可通过识别布局上的onTouch进行点击。所以没有按钮。在这种情况下,遥控器的行为如何?我是否需要调整我的布局?如果是这样如何?

感谢您的帮助。

+0

“如何在这种情况下远程的行为?” - 不好,我想象。 “我需要改变我的布局吗?” - 很可能,是的。 “如果是这样怎么样?” - 它需要通过键盘才能使用,因为Fire TV遥控器会为D-pad和其他按钮发送按键事件。这对于辅助功能也是必需的,因此视觉和运动不佳的用户可以使用辅助技术来帮助导航您的应用。 – CommonsWare

+0

@CommonsWare嗨,所以你会认为,通过遵循这些准则,我可以让我的应用程序亚马逊火灾准备:http://developer.android.com/training/keyboard-input/navigation.html? – Androidicus

+0

是的,虽然标签导航部分不相关。定向导航部分将映射到Fire TV遥控器的功能。如果您不想在Fire TV上持续测试,则使用常规Android设备的仿真器或蓝牙键盘是测试键盘输入的好方法。 – CommonsWare

回答

0

关注these instructions。您需要先安装eclipse。您必须启动eclipse android应用程序,然后才能运行应用程序。用火线连接服务器的USB电缆。

虽然开始你需要调用应用程序,adb shell am start -n com.amazon.sample.helloworld.MainActivity

对于完整的工作Mainactivity看看下面的代码,

 package com.example.firetv; 
     import android.support.v7.app.ActionBarActivity; 
     import android.app.Activity; 
     import android.os.Bundle; 
     import android.view.Menu; 
     import android.view.MenuItem; 
     import android.webkit.WebChromeClient; 
     import android.webkit.WebSettings; 
     import android.webkit.WebSettings.LayoutAlgorithm; 
     import android.webkit.WebSettings.PluginState; 
     import android.webkit.WebView; 
     import android.webkit.WebViewClient; 
     import android.widget.Toast; 

public class Init extends ActionBarActivity { 
WebView web; 
private static boolean sFactoryInit = false; 
private WebSettings webSettings; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_init); 
    web = (WebView) findViewById(R.id.myWebView); 

    webSettings = web.getSettings(); 

    webSettings.setLayoutAlgorithm(LayoutAlgorithm.NARROW_COLUMNS); 
    webSettings.setBuiltInZoomControls(true); 
    web.getSettings().setPluginState(PluginState.ON); 

    web = new WebView(this); 
    web.getSettings().setJavaScriptEnabled(true); // enable javascript 

    web.setWebChromeClient(new WebChromeClient() { 
    }); 

    final Activity activity = this; 
    web.setWebViewClient(new WebViewClient() { 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      Toast.makeText(activity, description, Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    web.clearCache(true); 
    web.loadUrl("http://server.com/firetv/out/"); 
    setContentView(web); 

    web.setWebViewClient(new WebViewClient() { 
     public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
      web.loadUrl("http://google.com"); 
     } 
    }); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.init, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

}

相关问题