2011-07-21 34 views
8

Tôi muốn phát triển một ứng dụng whitch điều khiển thiết bị nối tiếp qua usb, trên Linux Android.
Hệ điều hành Android 3.1 hỗ trợ máy chủ lưu trữ USB.Làm cách nào để điều khiển thiết bị nối tiếp trên Android?

Q1: Vui lòng cho tôi biết cách kết nối thiết bị nối tiếp cổng nào.

Tôi có khả năng thông tin thiết bị USB khi tôi nhận "Trạng thái thiết bị đổ" trên Màn hình gỡ lỗi Dalvik.
Và, tôi đã kiểm tra/dev/tty * trên thiết bị Android bằng cách sử dụng adb.
Tôi không biết thiết bị nối tiếp nào (/ dev/tty ??).

adb shell
$ ls/dev/tty *
/dev/tty
/dev/ttyFIQ0
/dev/ttyHS0
/dev/ttyHS2
/dev/ttyHS3
/dev/ttyHS4
/dev/ttyS0
/dev/ttyS1
/dev/ttyS2
/dev/ttyS3

Q2: Vui lòng cho tôi biết cách điều khiển thiết bị nối tiếp trên Android mà không có quyền root.

Tôi có một ứng dụng (exe) có thể điều khiển thiết bị nối tiếp trên Linux.
Tôi đã cố gắng thực hiện trên android, nhưng tôi không thể thực hiện quyền bị từ chối.

Và, tôi đã cố gắng chuyển hướng đến cổng nối tiếp (có thể)
$ ls>/dev/ttyS0
Nhưng tôi không thể.
không thể tạo/dev/ttyS0: quyền bị từ chối.

Vui lòng cho tôi biết bất kỳ điều gì về cách kiểm soát và truy cập thiết bị nối tiếp.

+0

Để làm điều này bằng cách sử dụng khả năng lưu trữ USB Android và API tương ứng của nó, Bạn phải triển khai mã trình điều khiển nối tiếp USB trong không gian người dùng trong Ứng dụng của bạn. Không có trình điều khiển hoặc thiết bị "nối tiếp" hạt nhân nào kết thúc. –

+0

Thiết bị nối tiếp nào? Có thể có hàng trăm! Vui lòng chỉ định chính xác bạn muốn làm gì. – not2qubit

Trả lời

0

Thử trên thiết bị được root? Trong nghiên cứu cùng một điều tôi đã đọc rằng chỉ có một vài thiết bị 3.1/2.3.4 cho phép truy cập không root vào cổng usb.

Đây là những gì tôi nhận được trên HTC Desire của tôi unrooted, 2.2:

$ ls /dev/tty* 
ls /dev/tty* 
/dev/tty 
/dev/ttyHS0 
/dev/ttyHSUSB0 
/dev/ttyHSUSB1 
/dev/ttyHSUSB2 
/dev/ttyMSM0 

Asus Transformer My, unrooted, 3.2:

$ ls /dev/tty* 
ls /dev/tty* 
/dev/tty 
/dev/ttyHS1 
/dev/ttyHS2 
/dev/ttyS0 
/dev/ttyS1 
/dev/ttyS2 
/dev/ttyS3 

tôi nhận được chính xác cùng một danh sách khi cập cảng với bàn phím Dock cài đặt (Nó là 2 x cổng USB).

Hy vọng điều đó sẽ hữu ích, vui lòng cho tôi biết tôi rất muốn có thể làm như vậy.

+0

Tất cả những điều này giả định sự hiện diện của trình điều khiển hạt nhân mà bạn không thể có trừ khi thiết bị được khởi động (không phải trường hợp ở đây) hoặc đã có trình điều khiển trong quá trình cài đặt (trừ khi thiết bị không phải là điện thoại/máy tính bảng thông thường) . Câu trả lời đúng là triển khai logic nối tiếp USB trong không gian người dùng dựa vào API máy chủ lưu trữ USB của Android. –

3

Có một đánh giá rất lớn về điều này trong các chủ đề diễn đàn XDA:

How to talk to the Modem with AT commands.

Chủ đề đó chỉ cho bạn cách gửi lệnh AT (ATC) với thiết bị đầu cuối từ xa (USB được kết nối với PC), nhưng chưa giải quyết được vấn đề về cách sử dụng thiết bị đầu cuối cục bộ (điện thoại) để nói chuyện với Modem điện thoại.

BTW. Bạn cần một ứng dụng/chương trình đầu cuối để thực hiện bất kỳ cuộc trò chuyện nào với modem (hãy nhớ, đó là giao tiếp 2 chiều). Vì vậy, đó là lý do tại sao bạn cần một thiết bị gốc, vì bộ gốc thường đi kèm với Busybox (bao gồm một chương trình thiết bị đầu cuối microcom). Nếu không, bạn phải viết chương trình của riêng bạn.

+0

Điều này giải quyết một câu hỏi rất khác với câu hỏi thực sự. –

+2

Câu hỏi trên là mơ hồ vì bất kỳ android nào cũng có thể có hàng trăm thiết bị "nối tiếp". Chỉ cần kiểm tra với: 'cat/proc/tty/drivers'. – not2qubit

1

trong bước tiếp theo, bạn có thể kiểm tra tty * cổng bằng vài lệnh: $ cat/dev/tty * /cho nhận các nhân vật từ tty và $ echo 'chuỗi văn bản'>/dev/tty * /để gửi các ký tự đến tty

chúc may mắn!

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