2

我正在努力跟随这里。我刚刚开始学习使用 GoogleTV 上的频道。

https://developers.google.com/tv/android/docs/gtv_channelsharing

该文档说...

*任何 Google TV Android 应用程序都可以通过编程方式更改电视频道。为此,应用程序调用 startActivity() 并将 Android Intent 对象设置为操作 ACTION_VIEW。任何 Google TV Android 应用程序都可以通过编程方式更改电视频道...请注意,此 Intent 未指定组件名称,默认情况下,此 Intent 由 Live TV 播放器处理,该播放器是 Google TV 平台的一部分。如果需要,您可以在 Google TV 应用程序的清单 (AndroidManifest.xml) 中为此 Intent 声明一个 Intent 过滤器。然后,您可以提供您的应用程序作为处理 Intent 的替代方案。*

我正在尝试这样做。当用户在他们的 gtv 遥控器中输入频道(一个数字)时,我想拦截频道更改,使用该频道号数据做一些事情,然后让 Live Player 更改频道。我希望使用 ACTION_VIEW 的意图过滤器操作设置的活动能够在用户键入遥控器时捕获频道更改。

<activity android:name="com.xxx.ActionViewActivity">
   <intent-filter>
      <action android:name="android.intent.action.ACTION_VIEW" />
      <category android:name="android.intent.category.DEFAULT" />
   </intent-filter>
</activity>

然后,ActionViewActivity.java:

public class ActionViewActivity extends Activity 
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Intent intent = getIntent();
        Log.i(getClass().getName(), intent.getAction());
    }
}

它永远不会进入 onCreate 方法。我在这里想念什么?

4

3 回答 3

3

这对我有用:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <data android:scheme="tv" />
  <category android:name="android.intent.category.DEFAULT" />
</intent-filter>

不需要特殊权限。

但是,这只处理调用通道更改 API 的情况。它不处理用户按下频道向上/向下按钮或在电视处于活动状态时输入频道号的情况。Google TV Remote 应用程序不使用频道更改 API,它只是将密钥代码传递给 Google TV。Able Remote 应用程序确实将频道更改 API 用于其喜爱的频道功能。

如果您将此意图过滤器添加到您的应用程序,屏幕上将提示用户是应该使用您的应用程序还是电视应用程序来执行操作。如果用户选择您的应用,您将获得以下意图:

意图 { act=android.intent.action.VIEW dat=tv://channel?deviceId=Logitech01&channelNumber=756 flg=0x13c00000 cmp=com.xx/.xActivity }

于 2012-01-21T18:39:50.923 回答
2

您需要方案(协议)。尝试:

<intent-filter>
  <action android:name="android.intent.action.VIEW" />
  <data android:scheme="tv" />
  ...
于 2012-01-21T01:59:11.207 回答
0

试试:android.intent.action.VIEW

于 2012-01-20T03:46:57.120 回答