OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 package org.chromium.device.bluetooth; | 5 package org.chromium.device.bluetooth; |
6 | 6 |
7 import android.annotation.TargetApi; | 7 import android.annotation.TargetApi; |
8 import android.bluetooth.BluetoothDevice; | 8 import android.bluetooth.BluetoothDevice; |
9 import android.content.Context; | |
10 import android.os.Build; | 9 import android.os.Build; |
11 | 10 |
| 11 import org.chromium.base.ContextUtils; |
12 import org.chromium.base.Log; | 12 import org.chromium.base.Log; |
13 import org.chromium.base.annotations.CalledByNative; | 13 import org.chromium.base.annotations.CalledByNative; |
14 import org.chromium.base.annotations.JNINamespace; | 14 import org.chromium.base.annotations.JNINamespace; |
15 import org.chromium.base.metrics.RecordHistogram; | 15 import org.chromium.base.metrics.RecordHistogram; |
16 | 16 |
17 import java.util.HashMap; | 17 import java.util.HashMap; |
18 | 18 |
19 /** | 19 /** |
20 * Exposes android.bluetooth.BluetoothDevice as necessary for C++ | 20 * Exposes android.bluetooth.BluetoothDevice as necessary for C++ |
21 * device::BluetoothDeviceAndroid. | 21 * device::BluetoothDeviceAndroid. |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 } | 93 } |
94 | 94 |
95 // Implements BluetoothDeviceAndroid::IsPaired. | 95 // Implements BluetoothDeviceAndroid::IsPaired. |
96 @CalledByNative | 96 @CalledByNative |
97 private boolean isPaired() { | 97 private boolean isPaired() { |
98 return mDevice.getBondState() == BluetoothDevice.BOND_BONDED; | 98 return mDevice.getBondState() == BluetoothDevice.BOND_BONDED; |
99 } | 99 } |
100 | 100 |
101 // Implements BluetoothDeviceAndroid::CreateGattConnectionImpl. | 101 // Implements BluetoothDeviceAndroid::CreateGattConnectionImpl. |
102 @CalledByNative | 102 @CalledByNative |
103 private void createGattConnectionImpl(Context context) { | 103 private void createGattConnectionImpl() { |
104 Log.i(TAG, "connectGatt"); | 104 Log.i(TAG, "connectGatt"); |
105 | 105 |
106 if (mBluetoothGatt != null) mBluetoothGatt.close(); | 106 if (mBluetoothGatt != null) mBluetoothGatt.close(); |
107 | 107 |
108 // autoConnect set to false as under experimentation using autoConnect f
ailed to complete | 108 // autoConnect set to false as under experimentation using autoConnect f
ailed to complete |
109 // connections. | 109 // connections. |
110 mBluetoothGatt = | 110 mBluetoothGatt = mDevice.connectGatt(ContextUtils.getApplicationContext(
), |
111 mDevice.connectGatt(context, false /* autoConnect */, mBluetooth
GattCallbackImpl, | 111 false /* autoConnect */, mBluetoothGattCallbackImpl, |
112 // Prefer LE for dual-mode devices due to lower energy c
onsumption. | 112 // Prefer LE for dual-mode devices due to lower energy consumpti
on. |
113 BluetoothDevice.TRANSPORT_LE); | 113 BluetoothDevice.TRANSPORT_LE); |
114 } | 114 } |
115 | 115 |
116 // Implements BluetoothDeviceAndroid::DisconnectGatt. | 116 // Implements BluetoothDeviceAndroid::DisconnectGatt. |
117 @CalledByNative | 117 @CalledByNative |
118 private void disconnectGatt() { | 118 private void disconnectGatt() { |
119 Log.i(TAG, "BluetoothGatt.disconnect"); | 119 Log.i(TAG, "BluetoothGatt.disconnect"); |
120 if (mBluetoothGatt != null) mBluetoothGatt.disconnect(); | 120 if (mBluetoothGatt != null) mBluetoothGatt.disconnect(); |
121 } | 121 } |
122 | 122 |
123 // Implements callbacks related to a GATT connection. | 123 // Implements callbacks related to a GATT connection. |
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
313 long nativeBluetoothDeviceAndroid, int status, boolean connected); | 313 long nativeBluetoothDeviceAndroid, int status, boolean connected); |
314 | 314 |
315 // Binds to BluetoothDeviceAndroid::CreateGattRemoteService. | 315 // Binds to BluetoothDeviceAndroid::CreateGattRemoteService. |
316 // TODO(http://crbug.com/505554): Replace 'Object' with specific type when J
NI fixed. | 316 // TODO(http://crbug.com/505554): Replace 'Object' with specific type when J
NI fixed. |
317 private native void nativeCreateGattRemoteService(long nativeBluetoothDevice
Android, | 317 private native void nativeCreateGattRemoteService(long nativeBluetoothDevice
Android, |
318 String instanceId, Object bluetoothGattServiceWrapper); | 318 String instanceId, Object bluetoothGattServiceWrapper); |
319 | 319 |
320 // Binds to BluetoothDeviceAndroid::GattServicesDiscovered. | 320 // Binds to BluetoothDeviceAndroid::GattServicesDiscovered. |
321 private native void nativeOnGattServicesDiscovered(long nativeBluetoothDevic
eAndroid); | 321 private native void nativeOnGattServicesDiscovered(long nativeBluetoothDevic
eAndroid); |
322 } | 322 } |
OLD | NEW |