summaryrefslogtreecommitdiffstats
path: root/docs/html-intl/intl/zh-cn/distribute/googleplay/quality/tv.jd
blob: 5eea2938d43fcce80bdb89075c8926660d0643c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
page.title=电视应用的质量
page.metaDescription=电视是 Android 设备不断增长的一部分,需要特别关注应用的设计和功能才能创造优秀的体验。
page.image=/distribute/images/gp-tv-quality.png
@jd:body

<div id="qv-wrapper"><div id="qv">
<h2>质量标准</h2>
  <ol>
    <li><a href="#ux">设计和交互</a></li>
    <li><a href="#fn">功能</a></li>
    <li><a href="#faq">常见问题</a></li>
  </ol>

  <h2>您还应阅读</h2>
  <ol>
    <li><a href="{@docRoot}distribute/essentials/quality/core.html">
核心的应用质量</a></li>
    <li><a href="{@docRoot}distribute/essentials/optimizing-your-app.html">
优化您的应用</a></li>
  </ol>
</div>
</div>

<div class="top-right-float" style="padding-right:0;margin-bottom:1em;">
  <img src="{@docRoot}distribute/images/gp-tv-quality.png" style="width:480px;">
</div>

<p>
  与使用手机或平板电脑相比,用户在看电视时有一些不同的期望。
  典型的电视用户坐在离屏幕约 10 英尺的位置,所以小细节没那么引起注意,小文本难以阅读。
由于用户离电视较远,他们必须使用一种遥控装置来导航和进行选择,而不是触摸屏幕上的元素。
这些差异大大改变了实现优秀电视用户体验的要求。

</p>

<p>
  为电视用户创造优秀体验的第一步是查阅并遵循
 <a href="{@docRoot}design/tv/index.html">Android TV 设计准则</a>,其中提供了关于如何为电视应用打造最佳用户体验的指导。
您还应查看
<a href="{@docRoot}training/tv/start/index.html">构建电视应用</a>培训,以了解电视应用的基本实现要求。

</p>

<p class="caution">
  <strong>重要说明:</strong>为确保优秀的用户体验,电视设备的应用必须满足一些特定的可用性要求。
只有符合下列质量标准的应用才能有资格在 Google Play 上作为 Android TV 应用。

</p>

<p class="note"><strong>注意:</strong>有关如何在 Google Play 中发布电视应用的信息,请参见<a href="{@docRoot}distribute/googleplay/tv.html">分发到 Android TV</a>。
</p>



<div class="headerLine">
  <h2 id="ux">
  视觉设计和用户交互
  </h2>


</div>

<p>
  这些标准可确保您的应用遵循标准设计和交互模式,以确保在电视设备上实现一致、直观和愉悦的用户体验。

</p>

<table>

<tr>
  <th style="width:2px;">
    类型
  </th>
  <th style="width:54px;">
    测试
  </th>
  <th>
    描述
  </th>
</tr>

<tr>
  <td rowspan="4" id="launcher">
    启动器
  </td>

  <td id="TV-LM">
    TV-LM
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      应用在安装后在 Android TV 启动器中显示一个启动器图标。
      (<a href="{@docRoot}training/tv/start/start.html#tv-activity">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-LB">
    TV-LB
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      应用在 Android TV 启动器上显示 320px x 180px 的全尺寸横幅作为其启动器图标。
      (<a href="{@docRoot}design/tv/patterns.html#banner">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-BN">
    TV-BN
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      应用的启动横幅包含应用的名称。
      (<a href="{@docRoot}design/tv/patterns.html#banner">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-LG">
    TV-LG
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      如果应用是一款游戏,则出现在 Android TV 启动器的游戏行中。<br>
      (<a href="{@docRoot}training/tv/games/index.html#manifest">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td rowspan="5" id="layout">
    布局   
  </td>

  <td id="TV-LO">
    TV-LO
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      所有应用界面以横向方向显示。
      (<a href="{@docRoot}training/tv/start/layouts.html#structure">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-TC">
    TV-TC
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      应用以 16sp 或更大的字号显示核心文本。
      (<a href="{@docRoot}design/tv/style.html#typography">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-TA">
    TV-TA
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      应用以 12sp 或更大的字号显示所有文本。
      (<a href="{@docRoot}design/tv/style.html#typography">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-OV">
    TV-OV
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      应用显示的任何文本或功能不会被屏幕边缘部分切断。

      (<a href="{@docRoot}training/tv/start/layouts.html#overscan">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-TR">
    TV-TR
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      应用不会部分遮住其他应用。应用填充整个屏幕并且采用非透明背景。

    </p>
  </td>
</tr>

<tr>
  <td rowspan="3" id="navigation">
    导航
  </td>

  <td id="TV-DP">
    TV-DP
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      应用的功能可使用 5 向方向键来进行导航,除非此应用需要 <a href="#TV-GP">TV-GP</a> 中指定的手柄控制器。

      (<a href="{@docRoot}training/tv/start/navigation.html#d-pad-navigation">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-DK">
    TV-DK
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      如果应用需要 <a href="#TV-GP">TV-GP</a> 指定的游戏手柄,则所有功能均可使用标准的 Android 游戏手柄键来进行导航。

      (<a href="{@docRoot}training/game-controllers/controller-input.html#button">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-DM">
    TV-DM
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      应用不依赖有菜单按钮的遥控器来访问用户界面的控件。

      (<a href="{@docRoot}training/tv/start/navigation.html#d-pad-navigation">了解方法</a>)
    </p>
  </td>
</tr>


</table>


<h3 class="rel-resources clearfloat">相关资源</h3>

<div class="resource-widget resource-flow-layout col-13" data-query=
"collection:distribute/essentials/tvqualityguidelines/visualdesign"
data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6">
</div>



<div class="headerLine">
  <h2 id="fn">
  功能
  </h2>


</div>

<p>
  遵循这些标准可确保您的应用进行正确配置,提供预期的功能行为。

</p>


<table>
<tr>
  <th style="width:2px;">
    类型
  </th>
  <th style="width:54px;">
    测试
  </th>
  <th>
    描述
  </th>
</tr>

<tr>
  <td rowspan="2" id="manifest">
   清单文件
  </td>

  <td id="TV-ML">
    TV-ML
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      应用的清单文件设置一个带有类别{@link android.content.Intent#CATEGORY_LEANBACK_LAUNCHER}的意图类型{@link android.content.Intent#ACTION_MAIN}。

      (<a href="{@docRoot}training/tv/start/start.html#tv-activity">了解方法</a>)
    </p>
  </td>
</tr>

</tr>
  <td id="TV-MT">
    TV-MT
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      应用的清单文件将硬件功能{@code android.hardware.touchscreen}设置为不需要。
      (<a href="{@docRoot}training/tv/start/hardware.html#declare-hardware-requirements">了解方法</a>)

    </p>
  </td>
</tr>

<tr>
  <td rowspan="2" id="game-controllers">
    游戏手柄
  </td>

  <td id="TV-GP">
    TV-GP
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      如果应用使用游戏手柄作为主要输入方法,则要通过
<a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code &lt;uses-feature&gt;}</a>清单文件标记来声明相应的要求。
      (<a href="{@docRoot}training/tv/games/index.html#gamepad">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-GC">
    TV-GC
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      如果应用提供了有关使用游戏手柄的可视说明,说明应没有品牌信息并显示兼容的按钮布局。

      (<a href="{@docRoot}training/tv/games/index.html#ControllerHelp">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td rowspan="4" id="advertising">
    广告
  </td>

  <td id="TV-AP">
    TV-AP
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      应用允许使用方向键与广告进行交互。
      (<a href="{@docRoot}training/tv/start/navigation.html#d-pad-navigation">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-AD">
    TV-AD
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      对于非视频全屏广告,应用允许用户立即用方向键忽略广告。

    </p>
  </td>
</tr>

<tr>
  <td id="TV-AU">
    TV-AU
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      对于可点击的非全屏、非视频广告,应用不允许将广告链接到网页 URL。

    </p>
  </td>
</tr>

<tr>
  <td id="TV-AA">
    TV-AA
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      对于可点击的非全屏、非视频广告,应用不允许将广告链接到电视设备上不可用的另一个应用。

    </p>
  </td>
</tr>

<tr>
  <td rowspan="1" id="web">
    Web 内容
  </td>

  <td id="TV-WB">
    TV-WB
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      对于 Web 内容,应用使用{@link android.webkit.WebView}组件,并且不要尝试启动网络浏览器应用。

    </p>
  </td>
</tr>

<tr>
  <td rowspan="3" id="media-playback">
    媒体播放
  </td>

  <td id="TV-NP">
    TV-NP
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      如果应用在用户离开后继续播放声音,则要在主屏幕建议行上提供<em>正在播放</em>卡,以便用户返回该应用来控制播放。


      (<a href="{@docRoot}training/tv/playback/now-playing.html">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-PA">
    TV-PA
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      如果应用提供<em>正在播放</em>卡,则选择此卡可让用户进入一个允许暂停播放的屏幕。

      (<a href="{@docRoot}training/tv/playback/now-playing.html">了解方法</a>)
    </p>
  </td>
</tr>

<tr>
  <td id="TV-PP">
    TV-PP
  </td>
  <td>
    <p style="margin-bottom:.5em;">
      如果应用播放视频或音乐内容,当播放期间发送了播放或暂停键事件时,应用在媒体播放和暂停之间切换。
<br>
      (<a href="{@docRoot}reference/android/view/KeyEvent.html#KEYCODE_MEDIA_PLAY_PAUSE">了解方法</a>)

    </p>
  </td>
</tr>


</table>


<h3 class="rel-resources clearfloat">相关资源</h3>

<div class="resource-widget resource-flow-layout col-13" data-query=
"collection:distribute/essentials/tvqualityguidelines/functionality"
data-sortorder="-timestamp" data-cardsizes="9x3" data-maxresults="6">
</div>


<div class="headerLine">
  <h2 id="faq">
  常见问题
  </h2>
</div>

<p style="margin-top:30px;">
  <strong>在提交我的应用后,怎样发现应用是否符合电视设备的所有要求?</strong>

</p>
<p>
  如果您的应用不符合本页所述的可用性要求,Play 商店团队将通过与应用关联的 <a href="https://play.google.com/apps/publish/">Google Play 开发者控制台</a>主帐户中指定的电子邮件地址与您联系。


</p>
<p class="caution">
  <strong>注意:</strong>确保您的应用包括电视设备<a href="{@docRoot}preview/tv/start/index.html#tv-activity">所需的清单条目</a>,否则应用不会被视为电视应用,并且不会审查电视可用性要求。


</p>


<p style="margin-top:30px;">
  <strong>我的应用不仅仅针对电视设备。如果我的应用不符合电视设备的要求,是否仍会在 Google Play 上向手机和平板电脑显示我的新应用或更新版本?</strong>


</p>
<p>
  是。上述要求只限制向电视设备 Google Play 商店分发应用。
不影响向其他设备类型分发应用,如手机、平板电脑和其他设备。

</p>


<p style="margin-top:30px;">
  <strong>如果我的应用符合这些发布要求,何时才能出现在电视设备的 Google Play 商店上?</strong>

</p>

<p>
  符合电视要求的应用将在官方发布 Android 5.0 <em>之后</em>出现在电视设备的 Google Play 商店上。

</p>