2

私はここに沿って従おうとしています。GoogleTV でチャンネルを操作する方法を学習し始めたばかりです。

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

このドキュメントは言う...

*どの Google TV Android アプリケーションでも、テレビ チャンネルをプログラムで変更できます。これを行うために、アプリはアクション ACTION_VIEW に設定された Android Intent オブジェクトを使用して startActivity() を呼び出します。どの Google TV Android アプリケーションでも、TV チャンネルをプログラムで変更できます...このインテントではコンポーネント名が指定されていないことに注意してください。デフォルトでは、このインテントは、Google TV プラットフォームの一部であるライブ TV プレーヤーによって処理されます。必要に応じて、Google TV アプリケーションのマニフェスト (AndroidManifest.xml) でこのインテントのインテント フィルタを宣言できます。その後、インテントを処理するための代替手段としてアプリケーションを提供できます。*

私はこれをやろうとしています。ユーザーがチャンネル (数字) を 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 を使用します。

このインテント フィルターをアプリに追加すると、アプリまたは TV アプリのどちらを使用してアクションを実行するかをユーザーに画面上で確認するメッセージが表示されます。ユーザーがアプリを選択すると、次のインテントが得られます。

インテント { 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 に答える