2021-09-24 17:20:57 +02:00
|
|
|
include::../description.adoc[]
|
|
|
|
|
|
|
|
include::../ask-yourself.adoc[]
|
|
|
|
|
|
|
|
include::../recommended.adoc[]
|
|
|
|
|
|
|
|
== Sensitive Code Example
|
|
|
|
|
|
|
|
----
|
|
|
|
import android.content.BroadcastReceiver
|
|
|
|
import android.content.Context
|
|
|
|
import android.content.Intent
|
|
|
|
import android.os.Bundle
|
|
|
|
import android.os.Handler
|
|
|
|
import android.os.UserHandle
|
|
|
|
|
|
|
|
public class MyIntentBroadcast {
|
|
|
|
fun broadcast(intent: Intent,
|
|
|
|
context: Context,
|
|
|
|
user: UserHandle,
|
|
|
|
resultReceiver: BroadcastReceiver,
|
|
|
|
scheduler: Handler,
|
|
|
|
initialCode: Int,
|
|
|
|
initialData: String,
|
|
|
|
initialExtras: Bundle,
|
|
|
|
broadcastPermission: String) {
|
|
|
|
context.sendBroadcast(intent) // Sensitive
|
|
|
|
context.sendBroadcastAsUser(intent, user) // Sensitive
|
|
|
|
|
|
|
|
// Broadcasting intent with "null" for receiverPermission
|
|
|
|
context.sendBroadcast(intent, null) // Sensitive
|
|
|
|
context.sendBroadcastAsUser(intent, user, null) // Sensitive
|
|
|
|
context.sendOrderedBroadcast(intent, null) // Sensitive
|
|
|
|
context.sendOrderedBroadcastAsUser(intent, user, null, resultReceiver,
|
|
|
|
scheduler, initialCode, initialData, initialExtras) // Sensitive
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
== Compliant Solution
|
|
|
|
|
2022-02-04 17:28:24 +01:00
|
|
|
[source,kotlin]
|
2021-09-24 17:20:57 +02:00
|
|
|
----
|
|
|
|
import android.content.BroadcastReceiver
|
|
|
|
import android.content.Context
|
|
|
|
import android.content.Intent
|
|
|
|
import android.os.Bundle
|
|
|
|
import android.os.Handler
|
|
|
|
import android.os.UserHandle
|
|
|
|
|
|
|
|
public class MyIntentBroadcast {
|
|
|
|
fun broadcast(intent: Intent,
|
|
|
|
context: Context,
|
|
|
|
user: UserHandle,
|
|
|
|
resultReceiver: BroadcastReceiver,
|
|
|
|
scheduler: Handler,
|
|
|
|
initialCode: Int,
|
|
|
|
initialData: String,
|
|
|
|
initialExtras: Bundle,
|
|
|
|
broadcastPermission: String) {
|
|
|
|
|
|
|
|
context.sendBroadcast(intent, broadcastPermission)
|
|
|
|
context.sendBroadcastAsUser(intent, user, broadcastPermission)
|
|
|
|
context.sendOrderedBroadcast(intent, broadcastPermission)
|
|
|
|
context.sendOrderedBroadcastAsUser(intent, user,broadcastPermission, resultReceiver,
|
|
|
|
scheduler, initialCode, initialData, initialExtras)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
----
|
|
|
|
|
|
|
|
include::../see.adoc[]
|
2021-06-02 20:44:38 +02:00
|
|
|
|
2021-06-03 09:05:38 +02:00
|
|
|
ifdef::env-github,rspecator-view[]
|
2021-09-20 15:38:42 +02:00
|
|
|
|
|
|
|
'''
|
|
|
|
== Implementation Specification
|
|
|
|
(visible only on this page)
|
|
|
|
|
|
|
|
include::../message.adoc[]
|
|
|
|
|
2021-06-08 15:52:13 +02:00
|
|
|
'''
|
2021-06-02 20:44:38 +02:00
|
|
|
== Comments And Links
|
|
|
|
(visible only on this page)
|
|
|
|
|
|
|
|
include::../comments-and-links.adoc[]
|
2021-06-03 09:05:38 +02:00
|
|
|
endif::env-github,rspecator-view[]
|