android13/packages/services/Car/tests/SampleCustomInputService/readme.md

104 lines
2.6 KiB
Markdown

# Custom Input Event
## Building
```bash
make SampleCustomInputService -j64
```
### Installing
```bash
adb install $OUT/target/product/emulator_car_x86/system/app/SampleCustomInputService/SampleCustomInputService.apk
```
## Start SampleCustomInputService
```bash
adb shell am start-foreground-service com.android.car.custominput.sample/.SampleCustomInputService
```
### Running tests
Steps to run unit tests:
1. Build and install SampleCustomInputService.apk (see above sections).
1. Then run:
```bash
atest SampleCustomInputServiceTest
```
## Inject events (test scripts)
These are the test scripts to demonstrate how CustomInputEvent can be used to implement OEM
partners non-standard events. They all represent hypothetical features for the sake of documentation
only.
*Note*: Make sure SampleCustomInputService is installed and started. Especially if you've just
ran tests. Depending on the configuration you use, running SampleCustomInputServiceTest may
uninstall SampleCustomInputService.
### Inject Maps event from steering wheel control
For this example, press home first, then inject the event to start Maps activity by running:
```shell script
adb shell cmd car_service inject-custom-input -d 0 f1
```
Parameters are:
* `-d 0`: sets target display type to main display;
* `f1`: sets the OEM partner function `f1` to execute. In this implementation, `f1` argument
represents the action used to launch Google maps app;
*Note*: For this command to run, ensure that Google Maps app is installed first.
### Inject events to accept or reject incoming calls
In this example, CustomInputEvents are send to accept or reject incoming calls. First cell phone
must be connected to Android via Bluetooth. Then, to accept incoming calls, run:
```shell script
adb shell cmd car_service inject-custom-input f2
```
Alternatively, to reject incoming calls, run:
```shell script
adb shell cmd car_service inject-custom-input f3
```
### Inject events to increase or decrease media volume
To increase media volume, run:
```shell script
adb shell cmd car_service inject-custom-input f4
```
To decrease media volume, run:
```shell script
adb shell cmd car_service inject-custom-input f5
```
### Inject events to increase or decrease alarm volume
To increase alarm volume, run:
```shell script
adb shell cmd car_service inject-custom-input f6
```
To decrease alarm volume, run:
```shell script
adb shell cmd car_service inject-custom-input f7
```
### Inject event to simulate pressing BACK HOME button
To simulate pressing BACK HOME button, run:
```shell script
adb shell cmd car_service inject-custom-input f8
```