OSDN Git Service

Allow bluetooth OPP transfers to be stopped.
authorMartijn Coenen <maco@google.com>
Wed, 16 May 2012 20:58:02 +0000 (13:58 -0700)
committerMartijn Coenen <maco@google.com>
Wed, 16 May 2012 21:01:35 +0000 (14:01 -0700)
If handover requesters such as NFC want to cancel an
ongoing transfer, they can use this intent. It requires
the same permission that is used for whitelisting,
which at this point is only granted to the NFC service.

Change-Id: I89e27550d700c4a29a892dba99fda740d8845642

AndroidManifest.xml
src/com/android/bluetooth/opp/BluetoothOppHandoverReceiver.java
src/com/android/bluetooth/opp/Constants.java

index 0e974dd..1883ba9 100644 (file)
@@ -65,6 +65,7 @@
             android:permission="com.android.permission.WHITELIST_BLUETOOTH_DEVICE">
             <intent-filter>
                 <action android:name="android.btopp.intent.action.WHITELIST_DEVICE" />
+                <action android:name="android.btopp.intent.action.STOP_HANDOVER_TRANSFER" />
             </intent-filter>
         </receiver>
         <activity android:name=".opp.BluetoothOppLauncherActivity"
index 485b2c7..336487c 100644 (file)
@@ -20,6 +20,7 @@ import android.bluetooth.BluetoothDevice;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
+import android.net.Uri;
 import android.util.Log;
 
 public class BluetoothOppHandoverReceiver extends BroadcastReceiver {
@@ -36,6 +37,14 @@ public class BluetoothOppHandoverReceiver extends BroadcastReceiver {
             if (D) Log.d(TAG, "Adding " + device + " to whitelist");
             if (device == null) return;
             BluetoothOppManager.getInstance(context).addToWhitelist(device.getAddress());
+        } else if (action.equals(Constants.ACTION_STOP_HANDOVER)) {
+            int id = intent.getIntExtra(Constants.EXTRA_BT_OPP_TRANSFER_ID, -1);
+            if (id != -1) {
+                Uri contentUri = Uri.parse(BluetoothShare.CONTENT_URI + "/" + id);
+
+                if (D) Log.d(TAG, "Stopping handover transfer with Uri " + contentUri);
+                context.getContentResolver().delete(contentUri, null, null);
+            }
         } else {
             if (D) Log.d(TAG, "Unknown action: " + action);
         }
index 1ebc858..5c34f39 100644 (file)
@@ -71,6 +71,9 @@ public class Constants {
     /** the intent that whitelists a remote bluetooth device for auto-receive confirmation (NFC) */
     public static final String ACTION_WHITELIST_DEVICE = "android.btopp.intent.action.WHITELIST_DEVICE";
 
+    /** the intent that can be sent by handover requesters to stop a BTOPP transfer */
+    public static final String ACTION_STOP_HANDOVER = "android.btopp.intent.action.STOP_HANDOVER_TRANSFER";
+
     /** the intent extra to show all received files in the transfer history */
     public static final String EXTRA_SHOW_ALL_FILES = "android.btopp.intent.extra.SHOW_ALL";