My intention is to make a Broadcast receiver that performs actions when receiving a call. Is it possible that had more priority than the automatic call reception SO?.
I've tried assigning a priority of 2147483647
which I think is the best, but still jumps me to try the call before the end of my receiver.
<!-- Receiver de llamadas -->
<receiver android:name=".PhoneCall">
<intent-filter android:priority="2147483647">
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>
Actually, I don't think that 2147483647 is the best value to use, because Android won't understand it and will ignore this value. What you have to do is try to set the priority to 999, since I guess 1000 is the maximum value.
This link answer me:
http://developer.android.com/reference/android/content/BroadcastReceiver.html
There are two major classes of broadcasts that can be received:
Normal broadcasts (sent with Context.sendBroadcast) are completely asynchronous. All receivers of the broadcast are run in an undefined order, often at the same time. This is more efficient, but means that receivers cannot use the result or abort APIs included here.
Ordered broadcasts (sent with Context.sendOrderedBroadcast) are delivered to one receiver at a time. As each receiver executes in turn, it can propagate a result to the next receiver, or it can completely abort the broadcast so that it won't be passed to other receivers. The order receivers run in can be controlled with the android:priority attribute of the matching intent-filter; receivers with the same priority will be run in an arbitrary order.
Broadcast like PHONE_STATE are "Normal broadcast". As far as I understand it is not possible to prioritize my broadcast. Does anyone think of any way?
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With