2009-09-14 30 views
12

Hai câu hỏi về sự phát triển Bluetooth trên Android:Android - Cách bật Bluetooth luôn bật?

  1. Có cách nào để bật Bluetooth để luôn trên (tôi có thể có một giai đoạn phát hiện thiết bị dài trong ứng dụng của tôi) trong Android? Theo như tôi có thể thấy giá trị mặc định là đếm ngược từ 120s.

  2. Ứng dụng có tồn tại bất kỳ triển khai API Bluetooth nguồn mở nào không?

Trả lời

9

Triển khai Bluetooth hiện khả dụng trong API Android 2.0. Xem thisthis.

+0

Vâng, tôi cũng đã thấy tin tức.Cuối cùng có sẵn :) –

+0

Bluetooth có sẵn trong SDK nhưng AVD không hỗ trợ API 2.0 (cấp 5) hoặc tài liệu không được cập nhật: http://developer.android.com/guide/developing/ tools/avd.html –

+1

Liên kết tổng quan có thể là một địa điểm bắt đầu tốt hơn so với hai liên kết khác: http://developer.android.com/intl/zh-CN/guide/topics/wireless/bluetooth.html – RickNotFred

2

Bật Bluetooth luôn bật, có thể không phải là một quyết định tốt, nếu mối quan tâm duy nhất của bạn là sự chậm trễ phát hiện lâu ("tuổi thọ pin").

Đối với API Bluetooth của bên thứ ba, điều duy nhất tôi đã nghe là iAnywhere Blue SDK (từ Sybase, không miễn phí, chỉ có phiên bản đánh giá), bao gồm một số tính năng, sẽ được hỗ trợ trong tương lai từ gói hệ thống/bluetoothbluez.

Theo số Bluetooth roadmap của Android, hầu hết những thứ chờ đợi lâu như Java API, Bluetooth 2.1 + EDR sẽ được triển khai, tại một thời điểm trong tương lai.

Chúc bạn may mắn với dự án của mình.

+0

Cảm ơn lời khuyên của pin nhưng ở giai đoạn này trong dự án tôi làm không quan tâm đến pin, chỉ liên quan đến Bluetooth :) –

1

Ngăn xếp Bluez trên Linux là triển khai mã nguồn mở. Nó cũng có sẵn trên Windows nhưng API hoàn chỉnh hơn nhiều trên Linux.

Khi bạn nói, 'bật Bluetooth luôn bật' có nghĩa là bạn luôn cố gắng khám phá các thiết bị khác?

Hầu hết các chip bluetooth đều có chế độ ngủ sâu, nơi con chip chủ yếu là xuống và chỉ cần kiểm tra hoạt động trên bất kỳ liên kết đã thiết lập nào. Nó sẽ chỉ thức dậy với toàn bộ sức mạnh khi bạn muốn nó làm điều gì đó (khám phá, tạo kết nối) hoặc có hoạt động trên một liên kết hiện có.

Vâng, nó sử dụng nhiều năng lượng pin hơn nếu Bluetooth tắt hoàn toàn nhưng không phải là tổng số ma cà rồng.

+0

Có, với luôn luôn trên tôi có nghĩa là phát hiện khách hàng liên tục. "Vấn đề" với android là đếm ngược 120 giây mặc định. Điều này có thể thay đổi không? Cho phép nói 600s? –

0

BlueCove là một triển khai bluetooth nguồn mở cho Java.

Nó hoạt động trên nhiều máy khác nhau và nếu chính xác có phiên bản tương thích với Android ẩn ở đâu đó.

1
private void ensureDiscoverable() { 
    if(D) Log.d(TAG, "ensure discoverable"); 
    if (mBluetoothAdapter.getScanMode() != 
     BluetoothAdapter.SCAN_MODE_CONNECTABLE_DISCOVERABLE) { 
     Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); 
     discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300); 
     startActivity(discoverableIntent); 
    } 

http://developer.android.com/reference/android/bluetooth/BluetoothAdapter.html#ACTION_REQUEST_DISCOVERABLE

+0

Đây là không phải lúc nào cũng bật (hoặc có thể phát hiện được như người hỏi ban đầu), điều này sẽ nhắc xác nhận người dùng. – Tiago

+1

Chúng tôi không bao giờ có thể làm cho thiết bị luôn hiển thị trong Android nhưng chúng tôi có thể kéo dài thời gian từ 120 giây lên 300 giây. –

2

On 2.3.6 tôi có thể giữ cho thiết bị luôn có thể nhìn thấy bằng cách đặt sự chậm trễ 0:

Intent di = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE); 
di.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 0); 
Các vấn đề liên quan