| 知乎专栏 |
private void broadcast(final long Id) {
// 注册广播监听系统的下载完成事件。
IntentFilter intentFilter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
long ID = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
if (ID == Id) {
Toast.makeText(getApplicationContext(), "任务:" + Id + " 下载完成!", Toast.LENGTH_LONG).show();
}
}
};
registerReceiver(broadcastReceiver, intentFilter);
}
Kotlin 例子
private val bluetoothBroadcastReceiver: BroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
val action = intent.action
Log.d(TAG, "bluetoothBroadcastReceiver Action: " + action)
val device = intent.getParcelableExtra<BluetoothDevice>(BluetoothDevice.EXTRA_DEVICE)
when (action) {
BluetoothDevice.ACTION_ACL_CONNECTED -> {
device?.let {
Toast.makeText(context, "蓝牙已连接: ${it.name}", Toast.LENGTH_SHORT).show()
}
// if(会议开始){
startMeeting()
// }
Log.d(TAG, "bluetoothBroadcastReceiver startMeeting")
}
BluetoothDevice.ACTION_ACL_DISCONNECTED -> {
device?.let {
Toast.makeText(context, "蓝牙已断开: ${it.name}", Toast.LENGTH_SHORT).show()
}
closeMeeting()
Log.d(TAG, "bluetoothBroadcastReceiver closeMeeting")
}
// BluetoothAdapter.ACTION_STATE_CHANGED -> {
// val state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR)
// when (state) {
// BluetoothAdapter.STATE_ON -> {
// Log.d(TAG, "蓝牙已开启")
// BlueManager.startScan()
// }
//
// BluetoothAdapter.STATE_OFF -> {
// Log.d(TAG, "蓝牙已关闭")
// }
// }
// }
}
}
}
private fun broadcast() {
val filter = IntentFilter()
filter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED)
filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED)
filter.addAction(BluetoothDevice.ACTION_FOUND)
filter.addAction(BluetoothAdapter.ACTION_CONNECTION_STATE_CHANGED)
activity?.registerReceiver(bluetoothBroadcastReceiver, filter)
}