diff options
-rw-r--r-- | 2_device-types/2_2_handheld-reqs.md | 15 | ||||
-rw-r--r-- | 2_device-types/2_3_television-reqs.md | 7 | ||||
-rw-r--r-- | 2_device-types/2_4_watch-reqs.md | 54 | ||||
-rw-r--r-- | 2_device-types/2_5_automotive-reqs.md | 155 | ||||
-rw-r--r-- | 4_application-packaging/4_0_intro.md | 21 | ||||
-rw-r--r-- | 5_multimedia/5_3_video-decoding.md | 2 | ||||
-rw-r--r-- | 7_hardware-compatibility/7_3_sensors.md | 4 | ||||
-rw-r--r-- | 7_hardware-compatibility/7_5_cameras.md | 12 | ||||
-rw-r--r-- | 7_hardware-compatibility/7_6_memory-and-storage.md | 2 |
9 files changed, 239 insertions, 33 deletions
diff --git a/2_device-types/2_2_handheld-reqs.md b/2_device-types/2_2_handheld-reqs.md index 871375fe..2570f5a1 100644 --- a/2_device-types/2_2_handheld-reqs.md +++ b/2_device-types/2_2_handheld-reqs.md @@ -94,14 +94,13 @@ policies defined in the Android SDK documentation. **Accessibility (Section 3.10)** -* [H-SR] Android Handheld device implementations MUST support third-party - accessibility services. - -* [H-SR] Android Handheld device implementations are STRONGLY RECOMMENDED to - preload accessibility services on the device comparable with or exceeding - functionality of the Switch Access and TalkBack (for languages supported by - the preloaded Text-to-speech engine) accessibility services as provided in - the [talkback open source project](https://github.com/google/talkback). +* [H-0-1] MUST support third-party accessibility services. + +* [H-SR] Are STRONGLY RECOMMENDED to preload accessibility services on the + device comparable with or exceeding functionality of the Switch Access and + TalkBack (for languages supported by the preloaded Text-to-speech engine) + accessibility services as provided in the [talkback open source + project](https://github.com/google/talkback). **Text-to-Speech (Section 3.11)** diff --git a/2_device-types/2_3_television-reqs.md b/2_device-types/2_3_television-reqs.md index 39ff09eb..d4b45f8d 100644 --- a/2_device-types/2_3_television-reqs.md +++ b/2_device-types/2_3_television-reqs.md @@ -51,10 +51,11 @@ If Android Television device implementations support a lock screen,they: **Accessibility (Section 3.10)** -* [T-SR] Android Television device implementations MUST support third-party - accessibility services. +Television device implementations: -* [T-SR] Android Television device implementations are STRONGLY RECOMMENDED to +* [T-0-1] MUST support third-party accessibility services. + +* [T-SR] Are STRONGLY RECOMMENDED to preload accessibility services on the device comparable with or exceeding functionality of the Switch Access and TalkBack (for languages supported by the preloaded Text-to-speech engine) accessibility services as provided in diff --git a/2_device-types/2_4_watch-reqs.md b/2_device-types/2_4_watch-reqs.md index 500aab8b..35b56105 100644 --- a/2_device-types/2_4_watch-reqs.md +++ b/2_device-types/2_4_watch-reqs.md @@ -15,7 +15,59 @@ Watch device implementations. ### 2.4.1\. Hardware -To be added. +**Screen Size (Section 7.1.1.1)** + +Watch device implementations: + +* [W-0-1] MUST have a screen with the physical diagonal size in the range from + 1.1 to 2.5 inches. + +**Navigation Keys (Section 7.2.3)** + +Watch device implementations: + +* [W-0-1] MUST have the Home function available to the user, and the Back + function except for when it is in `UI_MODE_TYPE_WATCH`. + +**Touchscreen Input (Section 7.2.4)** + +Watch device implementations: + +* [W-0-1] MUST support touchscreen input. + +**Accelerometer (Section 7.3.1)** + +Watch device implementations: + +* [W-SR] Are STRONGLY RECOMMENDED to include a 3-axis accelerometer. + +**Bluetooth (Section 7.4.3)** + +Watch device implementations: + +* [W-0-1] MUST support Bluetooth. + + +**Minimum Memory and Storage (Section 7.6.1)** + +Watch device implementations: + +* [W-0-1] MUST have at least 1GB of non-volatile storage available for + application private data (a.k.a. "/data" partition) +* [W-0-2] MUST have at least 416MB memory available to the kernel and + userspace. + +**Microphone (Section 7.8.1)** + +Watch device implementations: + +* [W-0-1] MUST include a microphone. + +**Audio Output (Section 7.8.1)** + +Watch device implementations: + +* MAY but SHOULD NOT have audio output. ### 2.4.2\. Multimedia diff --git a/2_device-types/2_5_automotive-reqs.md b/2_device-types/2_5_automotive-reqs.md index d6f42710..62338d58 100644 --- a/2_device-types/2_5_automotive-reqs.md +++ b/2_device-types/2_5_automotive-reqs.md @@ -16,16 +16,161 @@ Automotive device implementations. ### 2.5.1\. Hardware -Android Automotive device implementations: +**Screen Size (Section 7.1.1.1)** + +Automotive device implementations: + +* [A-0-1] MUST have a screen at least 6 inches in physical diagonal size. +* [A-0-2] MUST have a screen size layout of at least 750 dp x 480 dp. + +**Navigation Keys (Section 7.2.3)** + +Automotive device implementations: + +* [A-0-1] MUST provide the Home function and MAY provide Back and Recent + functions. +* [A-0-2] MUST send both the normal and long press event of the the Back + function + ([`KEYCODE_BACK`](http://developer.android.com/reference/android/view/KeyEvent.html#KEYCODE_BACK)) + to the foreground application. + +**Accelerometer (Section 7.3.1)** + +Automotive device implementations: + +* [A-SR] Are STRONGLY RECOMMENDED to include a 3-axis accelerometer. + +If Automotive device implementations include a 3-axis accelerometer, they: + +* [A-1-1] MUST be able to report events up to a frequency of at least 100 Hz. +* [A-1-2] MUST comply with the Android + [car sensor coordinate system]( + http://source.android.com/devices/sensors/sensor-types.html#auto_axes). + +**GPS (Section 7.3.3)** + +If Automotive device implementations include a GPS/GNSS receiver and report +the capability to applications through the `android.hardware.location.gps` +feature flag: + +* [A-1-1] GNSS technology generation MUST be the year "2017" or newer. + +**Gyroscope (Section 7.3.4)** + +If Automotive device implementations include a gyroscope, they: + +* [A-1-1] MUST be able to report events up to a frequency of at least 100 Hz. + +**Android Automotive-only sensors (Section 7.3.11)** +**Current Gear (Section 7.3.11.1)** + +Automotive device implementations: + +* SHOULD provide current gear as `SENSOR_TYPE_GEAR`. + +**Day Night Mode (Section 7.3.11.2)** + +Automotive device implementations: + +* [A-0-1] MUST support day/night mode defined as `SENSOR_TYPE_NIGHT`. +* [A-0-2] The value of the `SENSOR_TYPE_NIGHT` flag MUST be consistent with + dashboard day/night mode and SHOULD be based on ambient light sensor input. +* The underlying ambient light sensor MAY be the same as +[Photometer](#7_3_7_photometer). + +**Driving Status (Section 7.3.11.3)** + +Automotive device implementations: + +* [A-0-1] MUST support driving status defined as + `SENSOR_TYPE_DRIVING_STATUS`, with a default value of + `DRIVE_STATUS_UNRESTRICTED` when the vehicle is fully stopped and parked. + It is the responsibility of device manufacturers to configure + `SENSOR_TYPE_DRIVING_STATUS` in compliance with all laws and regulations + that apply to markets where the product is shipping. + +**Wheel Speed (Section 7.3.11.4)** + +Automotive device implementations: -* [A-0-1] MUST have a screen with the physical diagonal length equal to or greater - than 6 inches. +* [A-0-1] MUST provide vehicle speed defined as `SENSOR_TYPE_CAR_SPEED`. -More to be added. +**Bluetooth (Section 7.4.3)** + +Automotive device implementations: + +* [A-0-1] MUST support Bluetooth and SHOULD support Bluetooth LE. + +* [A-0-2] Android Automotive implementations MUST support the following + Bluetooth profiles: + * Phone calling over Hands-Free Profile (HFP). + * Media playback over Audio Distribution Profile (A2DP). + * Media playback control over Remote Control Profile (AVRCP). + * Contact sharing using the Phone Book Access Profile (PBAP). +* SHOULD support Message Access Profile (MAP). + +**Minimum Network Capability (Section 7.4.5)** + +Automotive device implementations: + +* SHOULD include support for cellular network based data connectivity. + +**Minimum Memory and Storage (Section 7.6.1)** + +Automotive device implementations: + +* [A-0-1] MUST have at least 4GB of non-volatile storage available for + application private data (a.k.a. "/data" partition) + +**USB peripheral mode (Section 7.7.1)** + +Automotive device implementations: + +* SHOULD include a USB port supporting peripheral mode. + +**Microphone (Section 7.8.1)** + +Automotive device implementations: + +* [A-0-1] MUST include a microphone. + +**Audio Output (Section 7.8.2)** + +Automotive device implementations: + +* [A-0-1] MUST have an audio output and declare + `android.hardware.audio.output`. ### 2.5.2\. Multimedia -To be added. +**Audio Encoding (Section 5.1)** + +Automotive device implementations MUST support the following audio encoding: + +* [A-0-1] MPEG-4 AAC Profile (AAC LC) +* [A-0-2] MPEG-4 HE AAC Profile (AAC+) +* [A-0-3] AAC ELD (enhanced low delay AAC) + +**Video Encoding (Section 5.2)** + +Automotive device implementations MUST support the following video encoding: + +* [A-0-1] H.264 AVC +* [A-0-2] VP8 + +**Video Decoding (Section 5.3)** + +Automotive device implementations MUST support the following video decoding: + +* [A-0-1] H.264 AVC +* [A-0-2] MPEG-4 SP +* [A-0-3] VP8 +* [A-0-4] VP9 + +Automotive device implementations are STRONGLY RECOMMENDED to support the +following video decoding: + +* [A-SR] H.265 HEVC ### 2.5.3\. Software diff --git a/4_application-packaging/4_0_intro.md b/4_application-packaging/4_0_intro.md index 4285e9cc..1a25035e 100644 --- a/4_application-packaging/4_0_intro.md +++ b/4_application-packaging/4_0_intro.md @@ -31,20 +31,25 @@ intent and the storage manager app handling [ACTION_MANAGE_STORAGE]( https://developer.android.com/reference/android/os/storage/StorageManager.html#ACTION_MANAGE_STORAGE) intent. -Device implementations MUST NOT install application packages from unknown +* [C-0-5] MUST have an activity that handles the +[`android.settings.MANAGE_UNKNOWN_APP_SOURCES`](http://developer.android.com/reference/android/provider/Settings.html#ACTION_MANAGE_UNKNOWN_APP_SOURCES) +intent. + +* [C-0-6] MUST NOT install application packages from unknown sources, unless the app that [requests the installation](https://developer.android.com/reference/android/content/Intent.html#ACTION_INSTALL_PACKAGE) meets all the following requirements: -* It MUST declare the [`REQUEST_INSTALL_PACKAGES`](http://developer.android.com/reference/android/Manifest.permission.html#REQUEST_INSTALL_PACKAGES) + * It MUST declare the [`REQUEST_INSTALL_PACKAGES`](http://developer.android.com/reference/android/Manifest.permission.html#REQUEST_INSTALL_PACKAGES) permission or have the `android:targetSdkVersion` set at 24 or lower. -* It MUST have been granted permission by the user to install apps from + * It MUST have been granted permission by the user to install apps from unknown sources. -Device implementations MUST have an activity that handles the -[`android.settings.MANAGE_UNKNOWN_APP_SOURCES`](http://developer.android.com/reference/android/provider/Settings.html#ACTION_MANAGE_UNKNOWN_APP_SOURCES) -intent. They SHOULD provide a user affordance to grant/revoke the permission to +* SHOULD provide a user affordance to grant/revoke the permission to install apps from unknown sources per application, but MAY choose to implement -this as a no-op and return `RESULT_CANCELED` for [`startActivityForResult()`](http://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent, int%29), +this as a no-op and return `RESULT_CANCELED` for +[`startActivityForResult()`](http://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent, +int%29), if the device implementation does not want to allow users to have this choice. -However even in such cases, they SHOULD indicate to the user why there is no such +However, even in such cases, they SHOULD indicate to the user why there is no +such choice presented. diff --git a/5_multimedia/5_3_video-decoding.md b/5_multimedia/5_3_video-decoding.md index 255d5038..007cf999 100644 --- a/5_multimedia/5_3_video-decoding.md +++ b/5_multimedia/5_3_video-decoding.md @@ -256,7 +256,7 @@ following table. If device implementations support VP9 codec and a hardware decoder: -* [C-2-2] MUST support the HD decoding profiles as indicated in the following +* [C-2-1] MUST support the HD decoding profiles as indicated in the following table. If the height that is reported by the `Display.getSupportedModes()` method is diff --git a/7_hardware-compatibility/7_3_sensors.md b/7_hardware-compatibility/7_3_sensors.md index 20903411..0553ac68 100644 --- a/7_hardware-compatibility/7_3_sensors.md +++ b/7_hardware-compatibility/7_3_sensors.md @@ -42,7 +42,7 @@ SystemClock.elapsedRealtimeNano() clock. Existing and new Android devices are upgrade to the future platform releases where this might become a REQUIRED component. The synchronization error SHOULD be below 100 milliseconds. -* [C-1-7] For any API indicated by the Android SDK documentation to be a +* [C-1-4] For any API indicated by the Android SDK documentation to be a [continuous sensor]( https://source.android.com/devices/sensors/report-modes.html#continuous), device implementations MUST continuously provide @@ -50,7 +50,7 @@ component. The synchronization error SHOULD be below 100 milliseconds. where jitter is defined as the standard deviation of the difference of the reported timestamp values between consecutive events. -* [C-1-8] MUST ensure that the sensor event stream +* [C-1-5] MUST ensure that the sensor event stream MUST NOT prevent the device CPU from entering a suspend state or waking up from a suspend state. * When several sensors are activated, the power consumption SHOULD NOT exceed diff --git a/7_hardware-compatibility/7_5_cameras.md b/7_hardware-compatibility/7_5_cameras.md index d0593d4d..d5ae3363 100644 --- a/7_hardware-compatibility/7_5_cameras.md +++ b/7_hardware-compatibility/7_5_cameras.md @@ -56,7 +56,7 @@ If device implementations include at least one front-facing camera, they: * [C-1-3] MUST NOT use a front-facing camera as the default for the Camera API and MUST NOT configure the API to treat a front-facing camera as the default rear-facing camera, even if it is the only camera on the device. -* [C-1-5] The camera preview MUST be mirrored horizontally relative to the +* [C-1-4] The camera preview MUST be mirrored horizontally relative to the orientation specified by the application when the current application has explicitly requested that the Camera display be rotated via a call to the @@ -68,9 +68,9 @@ that the Camera display be rotated via a call to the [`android.hardware.Camera.setDisplayOrientation()`]( http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)) method. -* [C-1-6] MUST NOT mirror the final captured still image or video streams +* [C-1-5] MUST NOT mirror the final captured still image or video streams returned to application callbacks or committed to media storage. -* [C-1-7] MUST mirror the image displayed by the postview in the same manner +* [C-1-6] MUST mirror the image displayed by the postview in the same manner as the camera preview image stream. * MAY include features (such as auto-focus, flash, etc.) available to rear-facing cameras as described in [section 7.5.1](#7_5_1_rear-facing_camera). @@ -99,7 +99,11 @@ camera connects through the USB port. high-quality unencoded streams (i.e. raw or independently compressed picture streams). * MAY support multiple cameras. -* MAY support camera-based video encoding. If supported, a simultaneous +* MAY support camera-based video encoding. + +If camera-based video encoding is supported: + +* [C-2-1] A simultaneous unencoded / MJPEG stream (QVGA or greater resolution) MUST be accessible to the device implementation. diff --git a/7_hardware-compatibility/7_6_memory-and-storage.md b/7_hardware-compatibility/7_6_memory-and-storage.md index 674da7fc..ab4eff2d 100644 --- a/7_hardware-compatibility/7_6_memory-and-storage.md +++ b/7_hardware-compatibility/7_6_memory-and-storage.md @@ -148,7 +148,7 @@ the above requirements, they: If device implementations include multiple shared storage paths (such as both an SD card slot and shared internal storage), they: -* [C-3-1] MUST allow only pre-installed and privileged Android +* [C-2-1] MUST allow only pre-installed and privileged Android applications with the `WRITE_EXTERNAL_STORAGE` permission to write to the secondary external storage, except when writing to their package-specific directories or within the `URI` returned by firing the |