1b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo/* 2b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo * Copyright (C) 2016 The Android Open Source Project 3b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo * 4b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo * Licensed under the Apache License, Version 2.0 (the "License"); 5b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo * you may not use this file except in compliance with the License. 6b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo * You may obtain a copy of the License at 7b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo * 8b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo * http://www.apache.org/licenses/LICENSE-2.0 9b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo * 10b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo * Unless required by applicable law or agreed to in writing, software 11b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo * distributed under the License is distributed on an "AS IS" BASIS, 12b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo * See the License for the specific language governing permissions and 14b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo * limitations under the License. 15b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo */ 16b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 17b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzopackage com.android.bluetooth.pbapclient; 18b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 19b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzoimport android.bluetooth.BluetoothSocket; 20b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 21b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzoimport java.io.DataInputStream; 22b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzoimport java.io.DataOutputStream; 23b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzoimport java.io.IOException; 24b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzoimport java.io.InputStream; 25b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzoimport java.io.OutputStream; 26b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 27b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzoimport javax.obex.ObexTransport; 28b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 29b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzoclass BluetoothPbapObexTransport implements ObexTransport { 30b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 31b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo private BluetoothSocket mSocket = null; 32b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 33b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public BluetoothPbapObexTransport(BluetoothSocket rfs) { 34b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo super(); 35b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo mSocket = rfs; 36b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 37b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 38b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo @Override 39b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public void close() throws IOException { 40b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo mSocket.close(); 41b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 42b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 43b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo @Override 44b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public DataInputStream openDataInputStream() throws IOException { 45b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo return new DataInputStream(openInputStream()); 46b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 47b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 48b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo @Override 49b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public DataOutputStream openDataOutputStream() throws IOException { 50b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo return new DataOutputStream(openOutputStream()); 51b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 52b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 53b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo @Override 54b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public InputStream openInputStream() throws IOException { 55b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo return mSocket.getInputStream(); 56b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 57b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 58b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo @Override 59b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public OutputStream openOutputStream() throws IOException { 60b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo return mSocket.getOutputStream(); 61b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 62b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 63b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo @Override 64b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public void connect() throws IOException { 65b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 66b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 67b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo @Override 68b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public void create() throws IOException { 69b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 70b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 71b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo @Override 72b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public void disconnect() throws IOException { 73b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 74b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 75b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo @Override 76b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public void listen() throws IOException { 77b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 78b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 79b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public boolean isConnected() throws IOException { 80b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo // return true; 81b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo return mSocket.isConnected(); 82b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 83b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 84b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo @Override 85b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public int getMaxTransmitPacketSize() { 86b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo return -1; 87b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 88b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 89b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo @Override 90b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public int getMaxReceivePacketSize() { 91b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo return -1; 92b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 93b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo 94b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo @Override 95b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo public boolean isSrmSupported() { 96b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo return false; 97b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo } 98b874a1d1cf25f90947ba87f791d42a404cad7d85Joseph Pirozzo} 99