104 lines
2.6 KiB
Markdown
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
|
|
```
|