summaryrefslogtreecommitdiffstats
path: root/src/com/android/bluetooth/opp/BluetoothOppTransfer.java
Commit message (Collapse)AuthorAgeFilesLines
* Opp : Check interrupted state before create socketSravan Kumar V2016-11-071-1/+22
| | | | | | | | | | | | | | | | | | | | | | Use case: 1. Pair remote with DUT. 2. Select any image and try share. 3. select bluetooth to be sent 4. Turn off bt quickly after clicking selected remote device. Failure: Bt can not be turned off and then bt turns on again. Root Cause: Some rare cases even after turn off BT connection thread is initiating socket coonection. Fix: Check with interrupted flag connection thread before creating Bluetooth socket. CRs-Fixed: 1084325 Change-Id: I40667a6e8c5a2cb047a1fd081d676e654e3ee858
* Bluetooth: Disable NON-AOSP BT DATA FeaturesSravan Kumar V2016-09-151-1/+5
| | | | | | | | | | | | | | | | | | Disable NON-AOSP bluetooth data related features from resource configuration values If disable_non_aosp_bt_features is set as true in config.xml following NON-AOSP features would be disabled OPP-1.2 MAP-EMAIL PBAP-1.2 PBAP-SIM disable_non_aosp_bt_features is set to false by default. It can be configured as per need. Change-Id: I4c5924bd7c94407342c6da83869eaa8da905605d CRs-Fixed: 1064006
* BT: Multi A2dp support in Bluetooth AppGaurav Asati2016-08-241-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Added support for Multi A2dp connections in Bluetooth application. 2. All connection transition states for 2nd HS onwards is handled in new state- MultiConnectionPending. 3. The changes are done to handle proper state transition for all connected HS. Change-Id: Ib7d16a4a647ba5d7e38a8c2edc4581474725ab6c Conflicts: src/com/android/bluetooth/avrcp/Avrcp.java src/com/android/bluetooth/btservice/AdapterService.java Bluetooth: Add support for multi Streaming. Add changes to support dual streaming for A2dp Change-Id: I84882d850ffd374bb998ef5e942464e2972d64bf Bluetooth: A2dp MultiCast/ Soft Hands-off. - Allow new profile connection on same ACL - Reset scan mode to last set scan mode before starting multicast - Check for mTargetDevice before moving to disconnected state. - Remove playing device from list on disconnect Change-Id: I24fa041783abba1584730930336b65a9586cb778 Bluetooth: Send Track change notification - Send track change notification to both devices. - Check for absolute volume support in both connected HS before updating audio - Reject 2nd incoming connection, when connecting event is received in pending state and already processing incoming connection. Change-Id: Ia5271febddcbf69c205fbebc7a11964a1ef0719c Dual A2DP: Update playstate on suspend - playstate update for suspend case to reflect the right state to remote device. Change-Id: If11acb9126ac8f424c622d786d4eaf3f155ca0c6 A2DP/AG: Increase A2DP/AG application level connection timeout - Application level connection timeout should be higher than lower level possible timeout to avoid race conditions. Stack level timeout for user response timeout is 30 seconds, hence during such scenarios stack will be still not timed out but application starts cleanup. Change-Id: I606e81fcea2e02c0cf4e5e47dba216bcbef42db4 Bluetooth: Update AudioManager for ABS volume - Update audiomanager for abs volume after RC features is received. - Update audiomanager when any of connected HS is disconnected. Change-Id: Ie2479cf538a830ba47c5a6418199caef2a81e78a Conflicts: src/com/android/bluetooth/avrcp/Avrcp.java Bluetooth: Block new ACL connections. - During active multicast, no new ACL should be created. - Do not proceed to new A2dp connection during active multicast. Change-Id: I0b9f6e7648976095ece8de4a41fbe10634c07131 Dual A2DP: Update currentDevice for unexpected disconnection - While in multipending state, currentDevice should be updated when disconnection is initiated for one device but happens for other device which is currentDevice. - Increase the connection timeout to 38 seconds to accomodate LMP response timeout and page timeout. CRs-Fixed: 835641 Change-Id: I54d439e458a212d6acf3031e5d1e89706071cfa9 Dual A2DP: Do not initiate bonding while multicast - Bonding has to be disabled while active multicast is on. This has to be explicitly taken care for avoiding the bonding and connection from available devices. Change-Id: Ic82686dd100201ca6171fbc3ab14c0b9690a850c CRs-Fixed: 837415 Misc A2dp Multicast Changes for proper Avrcp handling - Send play status update only if Music streaming is in progress. - Send play status update based on device specific stored state. - Remove multi player implementation as it causes mismatch in stored playback state and actual player state. - Logging changes for scan state update. CRs-Fixed: 839396 Change-Id: I539d949c32cbe1871f3c737bdd0e092798f729c1 Proper assignment of track number and play position - Initialize track number with value as -1 but on receiving meta update set it to 0 if media player in use is not capable of setting it to valid value. This change will help supporting 3rd party media player apps which are not capable of updating mentioned fields properly. - Explicitly send play-position as 0 in getPlayStatus response when position is not initialized as specification suggests that -1 is not a valid value for this command response. As per specification -1 will still be sent as the play position in interim response of Play Postion Changed notification. CRs-Fixed: 836672 Change-Id: I3e10ec4e49df095485fa630b95bf829e755686f1 Misc Avrcp handling for Multi connection scenarios - Handle avrcp TG connection state change update from stack and add remove respective devices to Avrcp connected device list. - Proper clean-up of device entries in A2dp and Handsfree state-machine. - Sending playback state changed as Paused when playback switches from that device to another. - Reject pending notifications when addressed player changes even to non 1.5 capable player. CRs-Fixed: 843335 Change-Id: Iafbeb17907e8bc5409ee996b966824fd4ba87417 Conflicts: src/com/android/bluetooth/avrcp/Avrcp.java Proper handling of Player settings attribute change - Proper handling of Player setting attribute change - Logging enhancement in player setting attrbute path. - Formatting changes. CRs-Fixed: 845462 Change-Id: I06067a091a21082b2668c31762f078da557841ee Conflicts: src/com/android/bluetooth/avrcp/Avrcp.java Dual A2DP: Update the connection state after timeout in Connected state When initiating incoming/outgoing connections, there is a possiblity that CONNECT_TIMEOUT for outgoing happens after successfully connecting to two other devices and this will be received in Connected state. We need to update the connection state and clear the target device. Change-Id: I0a1ad01f85b6f45b9276c6da9ce0e6b34f75990e Proper handling of Setting Addressed Player Proper handling of Setting Addressed Player ID. Make addressed Player ID as device independent. As otherwise device wont update the same after reconnection if any change has happened in between. CRs-Fixed: 855172 Change-Id: I23a4c3e9670fcd6538e0e3f5ef8c0be116a25de4 Change Play Position and Play status handling Change Play Position and Play status handling in a way that play positions are not kept device speific anymore as that belongs to change in player state, not device state. Play state changing to playing is sent only when device is identified as active one in hand-off mode. CRs-Fixed: 856063 Conflicts: src/com/android/bluetooth/a2dp/A2dpStateMachine.java Change-Id: Ia7e859c28a1826ac2686c432690030741a3c67bc
* OPP: Squashed commit of the following:Sravan Kumar V2016-08-241-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | OPP: Replace deprecated api with new API Remove unnecessary variable and avoid using deprecated api [Internal]. Change-Id: Ice9314d599d0c0f4d7cc0e1ed70c7e87fa41e937 Bluetooth: Extra debug prints to track ANR Add extra logs in PBAP and OPP profiles to track ANR during SNS test. Change-Id: If676ca59134105a423e42c23f767fbe1c7524e44 OPP: Show debug msg when receive incoming request In automation, many times UIAutomator is not able to accept the files saying PoP menu has not come. So to confirm added debug msg (Internal). Change-Id: If55765891e3465bf7f1715d7c02c4a7e39db05bd Change-Id: Ib315359f29b7f27b2dd6dccbd07946f2f97a978c
* OPP: Fix NPE issue while turn off BTSravan Kumar V2016-08-241-1/+5
| | | | | | | | | | | | | | | | | | | | | Use Case: 1. Pair remote with DUT. 2. From gallery send a file to remote 3. Turn off BT 4. Check the file transfer should fail Failure: BT crash seen when we turn off BT during file transfer. Root Cause: In Some conditions Bt Socket instance is remains null because of turn off BT. Fix: Before closing connection check BT Socket instance Value to avoid NPE. Change-Id: Idcd90c31a179247055a155678d11d8e76ec90aca
* OPP: Add checks to initiate rfcomm connection in case sdp failsHemant Gupta2016-08-241-9/+53
| | | | | | | | | | | Initiate rfcomm connection directly when sdp fails to start for Obex over l2cap. This would prevent usecases when in CTS test multiple user are creted, and sdp is initiated by profile user which is different from active user, resulting in unecessary wait for 10 seconds for SDP, leading to test case failure. Change-Id: I2d307b48a9a835e3cec17dc5ca66ddda9c13446e CRs-Fixed: 961190
* Bluetooth: Add OPP 1.2 feature.Pradeep Panigrahi2016-08-241-30/+72
| | | | | | Add change to support OPP 1.2 which uses obex over l2cap. Change-Id: I8cc4697658cae6decdba382c77f62c49c29fbf02
* BT: Dynamic logging for MAP, PBAP, OPP, HID, PAN and SAP profilesAshwini Munigala2016-08-241-1/+2
| | | | | | | | | | | | | | | | | | | | | | VERBOSE level logging for each profile can be enabled runtime from adb shell using following command and turn off/on BT: setprop log.tag.LOG_TAG VERBOSE -> VERBOSE level Logging (or) setprop log.tag.LOG_TAG DEBUG -> DEBUG level logging where 'LOG_TAG' to be replaced with below for corresponding profile: BluetoothHidHost - HID Host BluetoothHidDev - HID Device BluetoothMap - MAP Server BluetoothOpp - OPP Profile BluteoothPan - PAN Profile BluetoothPbap - PBAP Server BluetoothSap - SAP Server CRs-fixed: 608230, 604523 Change-Id: I37b73f2f596a96098c4f6a1ec5097dff36af11f3
* Cleanup Opp session during ACL disconnect.Pradeep Panigrahi2016-08-241-1/+68
| | | | | | | | | | | | | | | | | | | | | Use Case: 1) Pair with BT and dongle and start receiving file 2) Reset BT dongle abruptly such that ACL disconnects and file transfer fails. Failure: File not sent error is displayed after long time. Fix: Process ACL_DISCONNECT message in OPP module to clean up the transfer related data as soon as ACL is disconnected. This removes the delay we observe in displaying File not received message when Remote device's Battery is abbruptly taken out or remote disconnects the ACL when authorization request is in pending state in DUT. CRs-fixed: 520411 Change-Id: Ie6af1ab8c354f8e21eb56c61e5518b83b621c56d
* Bluetooth : NPE issue fix while stopping transfer files.Sravan Kumar V2016-08-241-4/+7
| | | | | | | | | In some rare conditions handler thread instance going to be null when ends NFC transfer at server side so put HandlerThread.interrupt() block in Synchronization to (prevent concurrent access) avoid force close. Change-Id: I2db8fbb0e9debdfc6f281c6a252f0fe7d30dbb50
* Obex over L2CAP + SDP search APICasper Bonde2015-04-091-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Each profile had its own implementation of ObexTransport. These implementations were implemented very similar, and could easily be merged into a common implementation. Additionally it will make it easier to adopt the transport to support L2CAP. The SDP functionality is implemented in a way that is scalable, hence adding new record types is easy. Intents are currently used to distribute the SDP search results, as we have observed that the new client side profiles have been located outside the Bluetooth package. We strongly recommend to keep all bluetooth profiles within the Bluetooth package, to acoid the need for exposing all bluetooth interfaces through the Android framework. For instance this new SDP create API is internal to Bluetooth, hence cannot be used by the external profiles - hence they cannot use OBEX over L2CAP. The SDP search currently supports: - MAP both sides - OPP server (only the server needs an SDP record) - PBAP server (only the server needs SDP record) The SDP create record currently supports: - MAP both sides - OPP server - PBAP server The new l2cap sockets introduces a new wrapper class for a rfcomm and an l2cap socket. The wrapper design: - Creates two accept threads running while bluetooth is turned on. - When a connection is accepted the owner is asked wether or not to accept the connection if rejected, the connection will be rejected at obex level, else it will be accepted and the state is changed to busy. - Any further connections will be rejected at Obex level, until the state is changed back to idle. Notes tor executing the test cases: Test OBEX using local pipes(no BT) or two bluetooth enabled devices. Test SDP using two Bluetooth enabled devices Start server testcase first on one device, then start the matching client test on the other device. You cannot run all tests in one go, as they need to run on multiple devices. Edit the test sequesce to add/remove/modify the sequence of OBEX operations to perform. Use the new SDP record create interface. Change-Id: I3941793f9843abf4afa5ffbee40d1d01c118b29b Signed-off-by: Casper Bonde <c.bonde@samsung.com>
* Check previous user confirmation before auto-confirm put requestMatthew Xie2014-11-171-4/+4
| | | | | | | Also correct a confirm status change check in updateShare. Bug: 17770561, 18343032 Change-Id: I8e7d10e73604c0bf1c88801a1caef7d579fbd1eb
* Add OBEX object count support to Bluetooth.Martijn Coenen2013-02-251-1/+1
| | | | | | | | | | To support Android Beam receiving information about the number of files in a OPP transfer, add the Count OBEX header. Also add a new intent to tell the handover requested that a transfer has started, including the count (if any). Change-Id: Ib5e0e8dbc6c2e3259e0f732a507557c3688e168c
* Enable Bluetooth sharing of downloaded files.Jake Hamby2012-09-141-3/+3
| | | | | | | | | | | | | | | | | | | | | Change BT OPP to open the InputStreams of files to share in the BluetoothOppLauncherActivity (or BluetoothOppHandoverReceiver for NFC shares), while the process has grantUriPermission() on the URI's to share. InputStreams are saved inside the existing BluetoothOppSendFileInfo objects, which no longer include the mDestination field because this isn't known at the time the SendFileInfo object is now created (before the user has chosen the destination BT device). These objects are stored in a static ConcurrentHashMap in BluetoothOppUtility and are removed when the file is closed (on success or failure). If the user tries to share thousands of files in one batch, we may not be able to open InputStreams for all of the files in the batch. In this case, the open should fail gracefully. Bug: 6808783 Change-Id: I3f3f86d2dc1a78a837aeb6a888f90b26434ba499
* Fix for BT turn on/off issues: NPE, FD/thread leaks, ANR.Fred2012-08-081-22/+0
| | | | | | | | | | | | This fix addresses numerous BT on/off issues found from the CTS test. Fixed fD/pipe leak in various state machine Looper objects by calling quit() function. Fixed cursor leak in AtPhonebook. Change Pbap to stop the RFCOMM listener on the STATE_TURNING_OFF instead of STATE_OFF. Removed several cleanup() methods causing NPE. Reduced RFCOMM listener timeout from 3 seconds to 300ms between retry. bug 6834336 Change-Id: I52423343d8f52f65294af0143f373871a9874d77
* Fixed exception in BondStateMachine when quit message occurs. Fixed ↵fredc2012-07-161-1/+9
| | | | | | exception in OPP when remote does not accept incoming request. Change-Id: Ibb43a26ee0ac62967518468d243880a0af987ba0
* Memory profiling changes : Updated the Bluetooth code to handle cleaning up ↵Ravi Nagarajan2012-07-161-0/+22
| | | | | | of object references (context, handlers, and collection objects ) during service cleanup.Memory profiling changes : Updated the Bluetooth code to handle cleaning up of object references (context, handlers, and collection objects ) during service cleanup. Change-Id: I2b0235f71c1feaf32215b2aaf89a2e06d8fa7d73
* Initial checkin of OPP and PBAPfredc2012-07-161-105/+19
| | | | Change-Id: Ie43a26874bd5f0c00d69c2ce02430f4a16da327a
* Additional changes to support Bluetooth Beam.Martijn Coenen2012-04-201-2/+7
| | | | | | | | | | | | | | | | | | | - Added a whitelist permission, to ensure only system services (such as NFC) can whitelist MAC addresses. - Added HANDOVER_STATUS permission, to ensure handover transfer status can only be received by eligible services (such as NFC). - Added new confirmation type HANDOVER_CONFIRMED; this indicates the transfer was initiated by a handover, and doesn't need to be confirmed. This type is also reused to send broadcasts to the NFC service, so the NFC service can show notifications and deal with the received data. - Added 15 second timeout to whitelist. - Modify notication code to not show any notifications for handover transfers; instead, send broadcasts to indicate handover status. - Modify "transfer complete" code to sendbroasts to indicate handover status. Change-Id: I00c08e09eaf44f0bd4bd837cb6b0c37b802742bc
* Bluetooth :fix opp for socket error retryjhtop.kim2011-08-041-1/+1
| | | | | | | | | When the pin or link key missing case occurs, we need to retry the socket connection. Use a timeout of 1.5 secs instead of 2.5 secs because the ACL inactivity timer is 2 secs. Change-Id: I3d4c096bd823e3204e91040bea608e44471dd4ce
* Modify the Rfcomm retry logicLiejun Tao2011-06-151-5/+5
| | | | | | | In BluetoothOppTransfer where we check mRetry and e.getMessage() if mRetry is false and e is not "Invalid exchange", the transfer is stuck Change-Id: Ie7a4da215c9e74e167db9fa29c6e113a7a7a2c77
* Retry rfcomm socket connections after link key exchange error.Jaikumar Ganesh2011-02-281-31/+55
| | | | | | | | | | | | | | | If the devices were paired before, but unpaired on the remote end, it will return an error (when sending a file)for the auth request for the socket connection. Link keys will get exchanged but we need to retry the socket connection. There is no good way to inform this socket asking it to retry apart from a delayed retry. The socket is opened at the kernel level but the link key retrys happen at the Bluez userspace level. Note: This is a temporary change, once the new mgmt interface comes up in Bluez, we wouldn't need this. Change-Id: Ifbd93d7f69b93515dda6c6f4ad2796853f9d5841
* code cleanup.Mohammad Shamsi2010-11-021-6/+0
| | | | | | | unused imports, local variabls and static constans removed from com.android.bluetooth.opp package. Change-Id: I0fd682a190221e216fac71723c05d3828b9fa42d
* Update application code for BluetoothAdapter.getDefaultAdapter().Nick Pelly2009-10-081-1/+1
| | | | | | | Change-Id: I7baafb909b74783da4e51d48f2465e7aacf07eb5 DrNo: eastham Bug: 2158765 Joke: What goes 99-thump, 99-thump? A centipede with a wooden leg.
* Update OPP/PBAP UILixin Yue2009-09-291-2/+13
| | | | | | | | Add timeout handling to incoming file confirm dialog, to avoid uncertain behavior when timeout happen Fix PBAP request timeout issue when open/close slider, dismiss timeout dialog to avoid uncertain behavior Fix typo in strings
* Update application for android.bluetooth.ParcelUuid -> android.os.ParcelUuidNick Pelly2009-09-281-1/+1
| | | | Change-Id: Ia0eb46d9bdff6a8ab3333bb0ad1f66d0303c135a
* Use new SDP API for OPPTao Liejun2009-09-231-39/+63
| | | | | | | | | Use new API BluetoothDevice.fetchUuidsWithSdp() to query SDP for un-paired device, and request SDP update when Opp is not in cache. Handle a concurrent case when incoming connection and file share happens together Some other minor changes Change-Id: I7ebf34801518867553551d8f7bba7ac62e22667e
* Change handling of remoteUuids.Jaikumar Ganesh2009-09-161-19/+7
|
* Workaround bug in Poloroid Pogo.Nick Pelly2009-09-011-1/+1
| | | | | | | Rename extra dots to underscores. Working with Poloroid to get an updated list of affected MAC addresses. For now we just have 00:04:48.
* Cleanup Opp debug codeTao Liejun2009-08-311-17/+25
| | | | | Stop Rfcomm polling Delete a few unused functions
* Clean up Logging.Nick Pelly2009-08-271-122/+49
| | | | | | | | | | Use the pattern if (V) Log.v(...); for logging. The Android style prefers curly braces, but for log lines it is ok to use a one-liner to keep the code manageable. Remove spaces from some log tags, and rename TAG BluetoothShareProvider to BluetoothOpp. Rename LOGVV to V, and LOGV to D. Just before ship we will change Constants.DEBUG and Constants.VERBOSE to false to compile out all the logging code.
* OPP updateTao Liejun2009-08-191-34/+34
| | | | | | | | | | | | | | Rewrite provider permission to allow LiveFolders work Support file:// uri to share file Support multiple share from gallery Fully support sending file queue Hold incoming connection for a while when OPP is busy instead of reject directly Move notification update to a thread Handle many error cases to display correct error messages Improve server/client timeout Delete empty file after reject incoming file Support upper case incoming file extension Avoid multiple mediascanner connections
* Bluetooth: Update Bluetooth.apk to match BT API change.Nick Pelly2009-08-181-23/+22
| | | | | | | | | Split BluetoothDevice into BluetoothDevice and BluetoothAdapter. BluetoothAdapter: Represents the local BT adapter. Operations on the local adapter (start a scan, etc). BluetoothDevice: Represents a remote BT device. Operations on remote devices (pair, connect, etc).
* Fix a few OPP issuesTao Liejun2009-08-061-5/+5
| | | | | Grab wakelock for server session Fix send small file bug
* Fix OPP receive bugTao Liejun2009-07-151-1/+1
| | | | | Fix the bug that second receving would fail Show display name instead of full name in notification
* Make opp compileTao Liejun2009-07-141-3/+3
| | | | | | | Modify to make opp application compliable in new git -change package name -change manifest -modify a few comments
* Initial drop of Motorola Bluetooth OPP code.Nick Pelly2009-07-101-0/+840
Minor changes from Moto code: - Added Motorola BSD license - Moved com.motorola.bluetoothshare to com.android.bluetooth.opp - Updated com.motorola.obex to javax.obex - Moved Android.mk to Android.mk.hide: does not yet compile due to changes in Obex library.