OSDN Git Service

"DO NOT MERGE" Add write SMS protection
authorSeven Shen <lingtongshen@gmail.com>
Wed, 6 Apr 2016 19:25:17 +0000 (12:25 -0700)
committerThe Android Automerger <android-build@google.com>
Fri, 22 Apr 2016 02:11:23 +0000 (19:11 -0700)
Bug: 25138326
Change-Id: I9f418370b8725d49e3734406b6f435107bcff021

src/com/android/bluetooth/map/BluetoothMapService.java

index 04d7043..f696bfa 100755 (executable)
@@ -29,6 +29,7 @@ import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.IntentFilter.MalformedMimeTypeException;
+import android.Manifest;
 import android.os.Handler;
 import android.os.Message;
 import android.os.ParcelUuid;
@@ -560,7 +561,10 @@ public class BluetoothMapService extends ProfileService {
 
         try {
             registerReceiver(mMapReceiver, filter);
-            registerReceiver(mMapReceiver, filterMessageSent);
+            // We need WRITE_SMS permission to handle messages in
+            // actionMessageSentDisconnected()
+            registerReceiver(mMapReceiver, filterMessageSent,
+                Manifest.permission.WRITE_SMS, null);
         } catch (Exception e) {
             Log.w(TAG,"Unable to register map receiver",e);
         }
@@ -1012,8 +1016,12 @@ public class BluetoothMapService extends ProfileService {
                 {
                     /* We do not have a connection to a device, hence we need to move
                        the SMS to the correct folder. */
-                    BluetoothMapContentObserver
+                    try {
+                        BluetoothMapContentObserver
                             .actionMessageSentDisconnected(context, intent, result);
+                    } catch(IllegalArgumentException e) {
+                        return;
+                    }
                 }
             } else if (action.equals(BluetoothDevice.ACTION_ACL_DISCONNECTED) &&
                     mIsWaitingAuthorization) {