| <?xml version="1.0" encoding="utf-8"?> |
| <!-- Copyright (C) 2015 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
| package="com.example.android.sampletvinput"> |
| |
| <!-- Required to play internet-based streaming contents. --> |
| <uses-permission android:name="android.permission.INTERNET"/> |
| <!-- Required to register a SyncStatusObserver. --> |
| <uses-permission android:name="android.permission.READ_SYNC_STATS"/> |
| <!-- Required to enable our SyncAdapter after it's created. --> |
| <uses-permission android:name="android.permission.WRITE_SYNC_SETTINGS"/> |
| <!-- Required because we're manually creating a new account. --> |
| <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/> |
| <!-- Required to update or read existing channel and program information in TvProvider. --> |
| <uses-permission android:name="com.android.providers.tv.permission.READ_EPG_DATA" /> |
| <!-- Required to update channel and program information in TvProvider. --> |
| <uses-permission android:name="com.android.providers.tv.permission.WRITE_EPG_DATA" /> |
| |
| <application android:label="@string/sample_tv_input" |
| android:icon="@drawable/android_48dp" |
| android:theme="@style/Theme.Leanback" > |
| <!-- Launched by the TV app before it uses SimpleTvInputService to set up channels for this |
| input. --> |
| <activity android:name=".simple.SimpleTvInputSetupActivity" > |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| </intent-filter> |
| </activity> |
| <!-- TV input sample which includes minimal implementation for seeing a video on the TV app. |
| Requires "android.permission.BIND_TV_INPUT" to ensure that only system services can bind. |
| Lots of features including EPG and parental controls are left out in favor of keeping this |
| sample simple. For a fully-featured example, see RichTvInputService. --> |
| <service android:name=".simple.SimpleTvInputService" |
| android:permission="android.permission.BIND_TV_INPUT" |
| android:label="@string/simple_input_label"> |
| <!-- Required filter used by the system to launch our account service. --> |
| <intent-filter> |
| <action android:name="android.media.tv.TvInputService" /> |
| </intent-filter> |
| <!-- An XML file which describes this input. This provides a pointer to the |
| SimpleTvInputSetupActivity to the system/TV app. --> |
| <meta-data android:name="android.media.tv.input" |
| android:resource="@xml/simpletvinputservice" /> |
| </service> |
| |
| <!-- Launched by the TV app before it uses RichTvInputService. This registers channels and |
| sets up SyncAdapter to provide program information in the background. --> |
| <activity android:name=".rich.RichTvInputSetupActivity" > |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| </intent-filter> |
| </activity> |
| <!-- Launched by the TV app when user wants to change the settings for this input. The |
| settings activity is expected to be used for the existing configuration. E.g. subscription |
| change, fine tuning of the channels, etc. --> |
| <activity android:name=".rich.RichTvInputSettingsActivity"> |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| </intent-filter> |
| </activity> |
| <!-- TV input which provides channels based on the streaming contents. |
| Requires "android.permission.BIND_TV_INPUT" to ensure that only system services can bind. |
| This provides the full implementation of TvInputService including EPG, subtitles, |
| multi-audio, parental controls, and overlay view. |
| --> |
| <service android:name=".rich.RichTvInputService" |
| android:permission="android.permission.BIND_TV_INPUT" |
| android:label="@string/rich_input_label"> |
| <!-- Required filter used by the system to launch our account service. --> |
| <intent-filter> |
| <action android:name="android.media.tv.TvInputService" /> |
| </intent-filter> |
| <!-- An XML file which describes this input. This provides pointers to the |
| RichTvInputSetupActivity and RichTvInputSettingsActivity to the system/TV app. --> |
| <meta-data android:name="android.media.tv.input" |
| android:resource="@xml/richtvinputservice" /> |
| </service> |
| |
| <!-- This service implements the SyncAdapter for updating program information regularly in |
| the background. It needs to be exported, so that the sync framework can access it. --> |
| <service android:name=".syncadapter.SyncService" |
| android:exported="true"> |
| <intent-filter> |
| <action android:name="android.content.SyncAdapter" /> |
| </intent-filter> |
| <meta-data android:name="android.content.SyncAdapter" |
| android:resource="@xml/syncadapter" /> |
| </service> |
| |
| <!-- Since the channel/program feed here does not require any authentication, we use a dummy |
| account used for SyncAdapter. --> |
| <service android:name=".syncadapter.DummyAccountService"> |
| <intent-filter> |
| <action android:name="android.accounts.AccountAuthenticator" /> |
| </intent-filter> |
| <meta-data android:name="android.accounts.AccountAuthenticator" |
| android:resource="@xml/authenticator" /> |
| </service> |
| </application> |
| |
| <uses-feature |
| android:name="android.hardware.touchscreen" |
| android:required="false" /> |
| <uses-feature |
| android:name="android.software.leanback" |
| android:required="true" /> |
| <!-- Required to expose this app in the store only when the device has TV input framework |
| with the TV app. --> |
| <uses-feature |
| android:name="android.software.live_tv" |
| android:required="true" /> |
| </manifest> |