Trang này mô tả cách kiểm soát môi trường trong thiết bị Cuttlefish bằng API REST hoặc giao diện dòng lệnh. Ví dụ: bạn có thể sửa đổi Tín hiệu Wi-Fi hoặc cập nhật vị trí GPS của thiết bị Mực ống.
Dịch vụ
Lệnh cvd env
cung cấp các dịch vụ sau để kiểm soát
Môi trường mực nang:
Dịch vụ | Mô tả |
---|---|
GnssGrpcProxy
|
Kiểm soát GNSS đối với dữ liệu định vị vị trí con nhộng của chúng tôi. |
OpenwrtControlService
|
Kiểm soát Openwrt , một trình cung cấp AP Wi-Fi ảo hoá cho tính năng Wi-Fi của Cuttlefish. |
WmediumdService
|
Kiểm soát Wmediumd , trình mô phỏng phương tiện không dây cho tính năng Wi-Fi của Cuttlefish. |
CasimirControlService
|
Kiểm soát Casimir , trình mô phỏng cho NFC bên ngoài
thiết bị. |
Kiểm soát môi trường bằng API REST
Phần này mô tả cách kiểm soát môi trường bằng cách sử dụng API Rest thông qua điểm cuối dịch vụ <https://localhost:1443>
.
Liệt kê các dịch vụ hoặc phương thức có sẵn
Để nhận danh sách tất cả dịch vụ, hãy gửi yêu cầu GET
đến URL sau đây kèm theo mã thiết bị.
https://localhost:1443/devices/DEVICE_ID /services
Để nhận danh sách tất cả phương thức của một dịch vụ, hãy gửi yêu cầu GET
đến
URL sau kèm theo ID thiết bị và tên dịch vụ.
https://localhost:1443/devices/DEVICE_ID /services/SERVICE_NAME
Để lấy thông tin chi tiết về một phương thức, chẳng hạn như yêu cầu hoặc phản hồi
thông báo loại thông báo, hãy gửi yêu cầu GET
đến URL sau kèm theo mã thiết bị,
tên dịch vụ và tên phương thức.
https://localhost:1443/devices/DEVICE_ID /services/SERVICE_NAME /METHOD_NAME
Xem thông tin chi tiết về các loại yêu cầu và phản hồi
Để nhận thông tin chi tiết về loại yêu cầu hoặc tin nhắn phản hồi, hãy gửi GET
yêu cầu URL sau đây kèm theo mã thiết bị, tên dịch vụ và
loại thông báo yêu cầu hoặc thông báo phản hồi. Thao tác này in tất cả tên và loại của mỗi
trong thư. Sau đó, bạn có thể sử dụng thông tin này để viết một thông báo proto ở định dạng JSON nhằm gửi yêu cầu RPC.
https://localhost:1443/devices/DEVICE_ID /services/SERVICE_NAME /REQUEST_OR_RESPONSE_TYPE_NAME /type
Gửi yêu cầu RPC để thay đổi môi trường
Để gửi yêu cầu RPC nhằm gọi một phương thức của dịch vụ có proto ở định dạng JSON, hãy gửi yêu cầu POST
đến URL sau đây kèm theo mã thiết bị, tên dịch vụ và tên phương thức. Bạn phải đưa proto ở định dạng JSON vào phần nội dung.
https://localhost:1443/devices/DEVICE_ID /services/SERVICE_NAME /METHOD_NAME
Trường hợp sử dụng mẫu
Sau đây là ví dụ về trường hợp sử dụng API Rest để sửa đổi cường độ tín hiệu Wi-Fi bằng cách gọi SetTxpower
.
Xác định tên dịch vụ, tên phương thức và tên loại thông báo yêu cầu để sửa đổi cường độ tín hiệu Wi-Fi.
Nhận danh sách tất cả dịch vụ hiện có bằng cách gửi yêu cầu
GET
đến URL sau.https://localhost:1443/devices/cvd-1/services
Đây là một câu trả lời mẫu.
{"services":["OpenwrtControlService","EchoService","GnssGrpcProxy","WmediumdService"]}
Lấy danh sách phương thức cho
WmediumdService
bằng cách gửi yêu cầuGET
đến URL sau.https://localhost:1443/devices/cvd-1/services/WmediumdService
Đây là một câu trả lời mẫu.
{"methods":["ListStations","LoadConfig","ReloadConfig","SetCivicloc","SetLci","SetPosition","SetSnr","SetTxpower","StartPcap","StopPcap"]}
Nhận thông tin về các loại thông báo yêu cầu và phản hồi cho phương thức
SetTxpower
bằng cách gửi yêu cầuGET
đến URL sau.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
Đây là một câu trả lời mẫu.
{"request_type_name":"wmediumdserver.SetTxpowerRequest","response_type_name":"google.protobuf.Empty"}
Nhận thông tin chi tiết về loại thông báo yêu cầu
wmediumdserver.SetTxpowerRequest
bằng cách gửi yêu cầuGET
đến URL sau.https://localhost:1443/devices/cvd-1/services/WmediumdService/wmediumdserver.SetTxpowerRequest/type
Đây là ví dụ về phản hồi.
message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
Gửi yêu cầu RPC đến dịch vụ
WmediumdService
để sửa đổi Wi-Fi cường độ tín hiệu đến mức mong muốn bằng cách gửi yêu cầuPOST
đến URL này với nội dung yêu cầu sau.https://localhost:1443/devices/cvd-1/services/WmediumdService/SetTxpower
{"mac_address":"42:00:00:00:00:00", "tx_power":1}
Đây là ví dụ về phản hồi.
{}
Điều khiển môi trường bằng dòng lệnh
Phần này mô tả các lệnh con có sẵn cho lệnh CLI cvd env
.
Để biết thêm thông tin, hãy in thông báo trợ giúp bằng cvd help env
.
Liệt kê các dịch vụ hoặc phương thức có sẵn
Để xem danh sách tất cả dịch vụ, hãy sử dụng cvd env ls
mà không cần đối số nào.
cvd env ls
Để xem danh sách tất cả phương thức của một dịch vụ, hãy thêm tên của dịch vụ đó làm đối số.
cvd env ls SERVICE_NAME
Để nhận thông tin chi tiết như các loại thông báo yêu cầu hoặc phản hồi của bao gồm cả tên dịch vụ và tên phương thức.
cvd env ls SERVICE_NAME METHOD_NAME
Xem thông tin chi tiết về các loại yêu cầu và phản hồi
Để nhận thông tin chi tiết về loại yêu cầu hoặc thông báo phản hồi, hãy sử dụng
Lệnh cvd env type
. Lệnh này in tất cả tên và loại của mỗi trường
trong tin nhắn đó. Sau đó, bạn có thể sử dụng thông tin này để viết tệp có định dạng JSON
thông báo proto để gửi yêu cầu RPC.
cvd env type SERVICE_NAME REQUEST_OR_RESPONSE_TYPE_NAME
Gửi yêu cầu RPC để thực hiện các thay đổi đối với môi trường
Để gửi yêu cầu RPC nhằm gọi một phương thức của một dịch vụ có proto theo định dạng JSON,
dùng lệnh cvd enc call
. Khi yêu cầu RPC kết thúc, giao diện sẽ in thông báo Rpc succeeded with OK status
và thông báo phản hồi bao gồm các giá trị (nếu có).
cvd env call SERVICE_NAME METHOD_NAME JSON_FORMATTED_PROTO
Trường hợp sử dụng mẫu
Sau đây là một trường hợp sử dụng mẫu của lệnh CLI cvd env
để sửa đổi
cường độ tín hiệu Wi-Fi bằng cách gọi SetTxpower
.
Xác định tên dịch vụ, tên phương thức và loại thông báo yêu cầu để sửa đổi cường độ tín hiệu Wi-Fi.
Nhận danh sách tất cả dịch vụ hiện có.
cvd env ls (Omitted) { "services" : [ "OpenwrtControlService", "EchoService", "GnssGrpcProxy", "WmediumdService" ] }
Nhận danh sách các phương thức cho
WmediumdService
.cvd env ls WmediumdService (Omitted) { "methods" : [ "ListStations", "LoadConfig", "ReloadConfig", "SetCivicloc", "SetLci", "SetPosition", "SetSnr", "SetTxpower", "StartPcap", "StopPcap" ] }
Nhận thông tin về các loại thông báo yêu cầu và phản hồi cho phương thức
SetTxpower
.cvd env ls WmediumdService SetTxpower (Omitted) { "request_type" : "wmediumdserver.SetTxpowerRequest", "response_type" : "google.protobuf.Empty" }
Nhận thông tin chi tiết về yêu cầu
wmediumdserver.SetTxpowerRequest
loại tin nhắn.cvd env type WmediumdService wmediumdserver.SetTxpowerRequest (Omitted) message SetTxpowerRequest { string mac_address = 1; int32 tx_power = 2; }
Gửi yêu cầu RPC đến dịch vụ
WmediumdService
để sửa đổi Wi-Fi cường độ tín hiệu đến mức mong muốn.cvd env call WmediumdService SetTxpower "{mac_address:'42:00:00:00:00:00', tx_power:1}" (Omitted) Rpc succeeded with OK status {}