Skip to content

Commit a324328

Browse files
committed
Add registerReceiver method to Android Tools
1 parent a72d719 commit a324328

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

android/sdl_android/src/main/java/com/smartdevicelink/util/AndroidTools.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
package com.smartdevicelink.util;
3434

35+
import android.annotation.SuppressLint;
36+
import android.content.BroadcastReceiver;
3537
import android.content.ComponentName;
3638
import android.content.Context;
3739
import android.content.Intent;
@@ -392,4 +394,27 @@ public static void saveVehicleType(Context context, VehicleType vehicleType, Str
392394
return null;
393395
}
394396
}
397+
398+
/**
399+
* A helper method to handle adding flags to registering a run time broadcast receiver.
400+
*
401+
* @param context a context that will be used to register the receiver with
402+
* @param receiver the receiver that will be registered
403+
* @param filter the filter that will be use to filter intents sent to the broadcast receiver
404+
* @param flags any flags that should be used to register the receiver. In most cases this
405+
* will be {@link Context#RECEIVER_NOT_EXPORTED} or
406+
* {@link Context#RECEIVER_EXPORTED}
407+
* @see Context#registerReceiver(BroadcastReceiver, IntentFilter)
408+
* @see Context#registerReceiver(BroadcastReceiver, IntentFilter, int)
409+
*/
410+
@SuppressLint("UnspecifiedRegisterReceiverFlag")
411+
public static void registerReceiver(Context context, BroadcastReceiver receiver, IntentFilter filter, int flags) {
412+
if (context != null && receiver != null && filter != null) {
413+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
414+
context.registerReceiver(receiver, filter, flags);
415+
} else {
416+
context.registerReceiver(receiver, filter);
417+
}
418+
}
419+
}
395420
}

0 commit comments

Comments
 (0)