I have written an app that sends a file to a laptop via Bluetooth. I would like to be able to delete that file automatically after some confirmation that the file was sent successfully.
I get a Toast message from BlueTooth Share that the file was sent, but how can I detect this from my app?
Is there a callback that I can use for this?
Here is my method for sending the file using Android 4+
File filename = new File(path + "/" + itemValue);
Uri uri = Uri.fromFile(filename);
//send file via bluetooth
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("text/*");
//this causes us to send via bluetooth only
intent.setClassName("com.android.bluetooth", "com.android.bluetooth.opp.BluetoothOppLauncherActivity");
intent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(intent, "Send file"));
Looking through the source, I see
Constants.java
andHandoverService.java
which seem to indicate that a Broadcast is sent when the transfer is completed.and
In
HandoverService
:So basically, you need to register a
BroadcastReceiver
forACTION_BT_OPP_TRANSFER_DONE
, and then check for theEXTRA_BT_OPP_TRANSFER_STATUS
extra and see if it was success or failure.Since these don't appear to be part of the public API, be warned that this could change in a future release.