2013-07-18 32 views
8

Tôi đang cố gửi ý định BATTERY_CHANGED thông qua trình bao ADB. Cho đến nay tôi chỉ quản lý để gửi ý định không có thông tin:Làm thế nào để phát sóng ý định với các tính năng bổ sung thông qua trình bao ADB?

am broadcast -a android.intent.action.BATTERY_CHANGED 

Tôi tạo ra một phù thủy ứng dụng lắng nghe cho mục đích này và đây là những gì hệ thống sẽ gửi mỗi vài giây:

#Intent;action=android.intent.action.BATTERY_CHANGED;launchFlags=0x60000010;i.icon-small=17302838;B.present=true;i.scale=100;i.level=100;S.technology=Li-ion;i.status=5;i.voltage=4155;i.invalid_charger=0;i.plugged=2;i.health=2;i.temperature=280;end 

Khi tôi phát sóng mục đích ứng dụng của tôi cho thấy điều này:

#Intent;action=android.intent.action.BATTERY_CHANGED;launchFlags=0x10;end 

câu hỏi của tôi là làm thế nào tôi có thể phát sóng các ý định thông qua adb shell với một số các thuộc tính/cờ (như quy mô, tình trạng, cắm ged, vv)?

Trả lời

10

Định dạng thông số <INTENT> giống nhau đối với tất cả am các tiểu ban như start, startservicebroadcast.

Nó có thể được thông qua như là một sự kết hợp của các thông số riêng biệt như -a <ACTION>, -c <CATEGORY>, -n <COMPONENT> và khác nhau -e <EXTRA> với nhiều loại khác nhau của tính năng bổ sung hoặc là một đơn URI định dạng chuỗi:

am broadcast "intent:#Intent;action=android.intent.action.BATTERY_CHANGED;i.status=5;i.voltage=4155;i.level=100;end" 
+7

Cảm ơn cho câu trả lời. Nó hoạt động hoàn hảo. Trong khi chờ đợi, tôi tìm thấy một giải pháp khả thi khác: 'am broadcast -a android.intent.action.BATTERY_CHANGED --ez hiện tại false --ei state 2 --ei level 50' – Valyo

+1

Câu trả lời cô ấy không làm việc cho tôi, nhưng Valyo bình luận ở đây đã làm việc. Ngoài ra, bạn phải ở trong adb shell cho điều này, do đó, nếu bạn muốn đánh dấu, chỉ cần thêm 'adb shell' vào lệnh ở đây. –

+0

@Valyo bình luận đã giúp đỡ nhưng tôi đã phải thay đổi tính năng bổ sung để phát sóng -a android.intent.action.BATTERY_CHANGED --ez hiện tại sai --ei nhà nước 2 --ei cấp 50 – PSIXO

Các vấn đề liên quan