71 lines
1.8 KiB
Plaintext
71 lines
1.8 KiB
Plaintext
include::../description.adoc[]
|
|
|
|
include::../ask-yourself.adoc[]
|
|
|
|
include::../recommended.adoc[]
|
|
|
|
== Sensitive Code Example
|
|
|
|
----
|
|
import android.content.BroadcastReceiver
|
|
import android.content.Context
|
|
import android.content.IntentFilter
|
|
import android.os.Build
|
|
import android.os.Handler
|
|
import androidx.annotation.RequiresApi
|
|
|
|
class MyIntentReceiver {
|
|
@RequiresApi(api = Build.VERSION_CODES.O)
|
|
fun register(
|
|
context: Context, receiver: BroadcastReceiver?,
|
|
filter: IntentFilter?,
|
|
scheduler: Handler?,
|
|
flags: Int
|
|
) {
|
|
context.registerReceiver(receiver, filter) // Sensitive
|
|
context.registerReceiver(receiver, filter, flags) // Sensitive
|
|
|
|
// Broadcasting intent with "null" for broadcastPermission
|
|
context.registerReceiver(receiver, filter, null, scheduler) // Sensitive
|
|
context.registerReceiver(receiver, filter, null, scheduler, flags) // Sensitive
|
|
}
|
|
}
|
|
----
|
|
|
|
== Compliant Solution
|
|
|
|
[source,kotlin]
|
|
----
|
|
import android.content.BroadcastReceiver
|
|
import android.content.Context
|
|
import android.content.IntentFilter
|
|
import android.os.Build
|
|
import android.os.Handler
|
|
import androidx.annotation.RequiresApi
|
|
|
|
class MyIntentReceiver {
|
|
@RequiresApi(api = Build.VERSION_CODES.O)
|
|
fun register(
|
|
context: Context, receiver: BroadcastReceiver?,
|
|
filter: IntentFilter?,
|
|
broadcastPermission: String?,
|
|
scheduler: Handler?,
|
|
flags: Int
|
|
) {
|
|
context.registerReceiver(receiver, filter, broadcastPermission, scheduler)
|
|
context.registerReceiver(receiver, filter, broadcastPermission, scheduler, flags)
|
|
}
|
|
}
|
|
----
|
|
|
|
include::../see.adoc[]
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::../message.adoc[]
|
|
|
|
endif::env-github,rspecator-view[]
|