Index: device/bluetooth/bluetooth_device_android.cc |
diff --git a/device/bluetooth/bluetooth_device_android.cc b/device/bluetooth/bluetooth_device_android.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..890244a9f3c755a61d83c1e3f947080bcbd81b3d |
--- /dev/null |
+++ b/device/bluetooth/bluetooth_device_android.cc |
@@ -0,0 +1,200 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "device/bluetooth/bluetooth_device_android.h" |
+ |
+#include "base/android/jni_android.h" |
+#include "base/android/jni_array.h" |
+#include "base/android/jni_string.h" |
+#include "jni/ChromeBluetoothDevice_jni.h" |
+ |
+using base::android::AttachCurrentThread; |
+using base::android::AppendJavaStringArrayToStringVector; |
+ |
+namespace device { |
+ |
+BluetoothDeviceAndroid* BluetoothDeviceAndroid::Create( |
+ jobject bluetooth_device_wrapper) { // Java Type: bluetoothDeviceWrapper |
+ BluetoothDeviceAndroid* device = new BluetoothDeviceAndroid(); |
+ |
+ device->j_device_.Reset(Java_ChromeBluetoothDevice_create( |
+ AttachCurrentThread(), bluetooth_device_wrapper)); |
+ |
+ return device; |
+} |
+ |
+BluetoothDeviceAndroid::~BluetoothDeviceAndroid() { |
+} |
+ |
+bool BluetoothDeviceAndroid::UpdateAdvertisedUUIDs(jobject advertised_uuids) { |
+ return Java_ChromeBluetoothDevice_updateAdvertisedUUIDs( |
+ AttachCurrentThread(), j_device_.obj(), advertised_uuids); |
+} |
+ |
+// static |
+bool BluetoothDeviceAndroid::RegisterJNI(JNIEnv* env) { |
+ return RegisterNativesImpl(env); // Generated in ChromeBluetoothDevice_jni.h |
+} |
+ |
+uint32 BluetoothDeviceAndroid::GetBluetoothClass() const { |
+ return Java_ChromeBluetoothDevice_getBluetoothClass(AttachCurrentThread(), |
+ j_device_.obj()); |
+} |
+ |
+std::string BluetoothDeviceAndroid::GetAddress() const { |
+ return ConvertJavaStringToUTF8(Java_ChromeBluetoothDevice_getAddress( |
+ AttachCurrentThread(), j_device_.obj())); |
+} |
+ |
+BluetoothDevice::VendorIDSource BluetoothDeviceAndroid::GetVendorIDSource() |
+ const { |
+ // Android API does not provide Vendor ID. |
+ return VENDOR_ID_UNKNOWN; |
+} |
+ |
+uint16 BluetoothDeviceAndroid::GetVendorID() const { |
+ // Android API does not provide Vendor ID. |
+ return 0; |
+} |
+ |
+uint16 BluetoothDeviceAndroid::GetProductID() const { |
+ // Android API does not provide Product ID. |
+ return 0; |
+} |
+ |
+uint16 BluetoothDeviceAndroid::GetDeviceID() const { |
+ // Android API does not provide Device ID. |
+ return 0; |
+} |
+ |
+bool BluetoothDeviceAndroid::IsPaired() const { |
+ return Java_ChromeBluetoothDevice_isPaired(AttachCurrentThread(), |
+ j_device_.obj()); |
+} |
+ |
+bool BluetoothDeviceAndroid::IsConnected() const { |
+ NOTIMPLEMENTED(); |
+ return false; |
+} |
+ |
+bool BluetoothDeviceAndroid::IsConnectable() const { |
+ NOTIMPLEMENTED(); |
+ return false; |
+} |
+ |
+bool BluetoothDeviceAndroid::IsConnecting() const { |
+ NOTIMPLEMENTED(); |
+ return false; |
+} |
+ |
+BluetoothDevice::UUIDList BluetoothDeviceAndroid::GetUUIDs() const { |
+ JNIEnv* env = AttachCurrentThread(); |
+ std::vector<std::string> uuid_strings; |
+ AppendJavaStringArrayToStringVector( |
+ env, Java_ChromeBluetoothDevice_getUuids(env, j_device_.obj()).obj(), |
+ &uuid_strings); |
+ BluetoothDevice::UUIDList uuids; |
+ uuids.reserve(uuid_strings.size()); |
+ for (auto uuid_string : uuid_strings) { |
+ uuids.push_back(BluetoothUUID(uuid_string)); |
+ } |
+ return uuids; |
+} |
+ |
+int16 BluetoothDeviceAndroid::GetInquiryRSSI() const { |
+ NOTIMPLEMENTED(); |
+ return kUnknownPower; |
+} |
+ |
+int16 BluetoothDeviceAndroid::GetInquiryTxPower() const { |
+ NOTIMPLEMENTED(); |
+ return kUnknownPower; |
+} |
+ |
+bool BluetoothDeviceAndroid::ExpectingPinCode() const { |
+ NOTIMPLEMENTED(); |
+ return false; |
+} |
+ |
+bool BluetoothDeviceAndroid::ExpectingPasskey() const { |
+ NOTIMPLEMENTED(); |
+ return false; |
+} |
+ |
+bool BluetoothDeviceAndroid::ExpectingConfirmation() const { |
+ NOTIMPLEMENTED(); |
+ return false; |
+} |
+ |
+void BluetoothDeviceAndroid::GetConnectionInfo( |
+ const ConnectionInfoCallback& callback) { |
+ NOTIMPLEMENTED(); |
+ callback.Run(ConnectionInfo()); |
+} |
+ |
+void BluetoothDeviceAndroid::Connect( |
+ PairingDelegate* pairing_delegate, |
+ const base::Closure& callback, |
+ const ConnectErrorCallback& error_callback) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void BluetoothDeviceAndroid::SetPinCode(const std::string& pincode) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void BluetoothDeviceAndroid::SetPasskey(uint32 passkey) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void BluetoothDeviceAndroid::ConfirmPairing() { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void BluetoothDeviceAndroid::RejectPairing() { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void BluetoothDeviceAndroid::CancelPairing() { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void BluetoothDeviceAndroid::Disconnect(const base::Closure& callback, |
+ const ErrorCallback& error_callback) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void BluetoothDeviceAndroid::Forget(const ErrorCallback& error_callback) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void BluetoothDeviceAndroid::ConnectToService( |
+ const BluetoothUUID& uuid, |
+ const ConnectToServiceCallback& callback, |
+ const ConnectToServiceErrorCallback& error_callback) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void BluetoothDeviceAndroid::ConnectToServiceInsecurely( |
+ const BluetoothUUID& uuid, |
+ const ConnectToServiceCallback& callback, |
+ const ConnectToServiceErrorCallback& error_callback) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+void BluetoothDeviceAndroid::CreateGattConnection( |
+ const GattConnectionCallback& callback, |
+ const ConnectErrorCallback& error_callback) { |
+ NOTIMPLEMENTED(); |
+} |
+ |
+BluetoothDeviceAndroid::BluetoothDeviceAndroid() { |
+} |
+ |
+std::string BluetoothDeviceAndroid::GetDeviceName() const { |
+ return ConvertJavaStringToUTF8(Java_ChromeBluetoothDevice_getDeviceName( |
+ AttachCurrentThread(), j_device_.obj())); |
+} |
+ |
+} // namespace device |