android蓝牙电话监听状态
2017-05-27 10:34
316 查看
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
RegisterBd();
}
BroadcastReceiver broadcastReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent intent) {
if(intent.getAction().equals(BluetoothHeadsetClient.ACTION_CONNECTION_STATE_CHANGED)){//连接远程设备广播
//0:disconneted 1:connecting 2:connected 3:disconnecting
int state = intent.getIntExtra(BluetoothProfile.EXTRA_STATE, -1);
Log.e(TAG,"ACTION_CONNECTION_STATE_CHANGED:: state = " + String.valueOf(state) + "\n");
}else if(intent.getAction().equals(BluetoothHeadsetClient.ACTION_CALL_CHANGED)){//接通状态广播:来电、去电、挂断等
Log.e(TAG," action = BluetoothHeadsetClient.ACTION_CALL_CHANGED");
Object state = intent.getExtra(BluetoothHeadsetClient.EXTRA_CALL);//注:getExtra()返回Object类型
BluetoothHeadsetClientCall ss = (BluetoothHeadsetClientCall)state;//类型转换
Log.e(TAG," Object = " + String.valueOf(state));
Log.e(TAG,"ss.mId = " + String.valueOf(ss.getId()));
/*state:: CALL_STATE_ACTIVE =0; CALL_STATE_HELD = 1; CALL_STATE_DIALING =2*/
Log.e(TAG,"ss.mState = " + String.valueOf(ss.getState()));//获取来电/去电/接通/挂断等状态
Log.e(TAG,"ss.mNumber = " + String.valueOf(ss.getNumber()));//获取来电/去电的电话号码
Log.e(TAG," ss.mOutgoing = " + String.valueOf(ss.isOutgoing()));
Log.e(TAG,"ss.mMultiParty = " + String.valueOf(ss.isMultiParty()));
}else if(intent.getAction().equals(BluetoothHeadsetClient.ACTION_AUDIO_STATE_CHANGED)){//音频流接通或断开广播
Log.e(TAG," action = BluetoothHeadsetClient.ACTION_AUDIO_STATE_CHANGED");
//state: 0:audio disconnected; 1:conneting; 2:connected
int state = intent.getIntExtra(BluetoothProfile.EXTRA_STATE, -1);
Log.e(TAG,"ACTION_AUDIO_STATE_CHANGED:: state = " + String.valueOf(state));
}
}
};
public void RegisterBd(){
IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothHeadsetClient.ACTION_CONNECTION_STATE_CHANGED);
filter.addAction(BluetoothHeadsetClient.ACTION_CALL_CHANGED);
filter.addAction(BluetoothHeadsetClient.ACTION_AUDIO_STATE_CHANGED);
registerReceiver(broadcastReceiver, filter);
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
RegisterBd();
}
BroadcastReceiver broadcastReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent intent) {
if(intent.getAction().equals(BluetoothHeadsetClient.ACTION_CONNECTION_STATE_CHANGED)){//连接远程设备广播
//0:disconneted 1:connecting 2:connected 3:disconnecting
int state = intent.getIntExtra(BluetoothProfile.EXTRA_STATE, -1);
Log.e(TAG,"ACTION_CONNECTION_STATE_CHANGED:: state = " + String.valueOf(state) + "\n");
}else if(intent.getAction().equals(BluetoothHeadsetClient.ACTION_CALL_CHANGED)){//接通状态广播:来电、去电、挂断等
Log.e(TAG," action = BluetoothHeadsetClient.ACTION_CALL_CHANGED");
Object state = intent.getExtra(BluetoothHeadsetClient.EXTRA_CALL);//注:getExtra()返回Object类型
BluetoothHeadsetClientCall ss = (BluetoothHeadsetClientCall)state;//类型转换
Log.e(TAG," Object = " + String.valueOf(state));
Log.e(TAG,"ss.mId = " + String.valueOf(ss.getId()));
/*state:: CALL_STATE_ACTIVE =0; CALL_STATE_HELD = 1; CALL_STATE_DIALING =2*/
Log.e(TAG,"ss.mState = " + String.valueOf(ss.getState()));//获取来电/去电/接通/挂断等状态
Log.e(TAG,"ss.mNumber = " + String.valueOf(ss.getNumber()));//获取来电/去电的电话号码
Log.e(TAG," ss.mOutgoing = " + String.valueOf(ss.isOutgoing()));
Log.e(TAG,"ss.mMultiParty = " + String.valueOf(ss.isMultiParty()));
}else if(intent.getAction().equals(BluetoothHeadsetClient.ACTION_AUDIO_STATE_CHANGED)){//音频流接通或断开广播
Log.e(TAG," action = BluetoothHeadsetClient.ACTION_AUDIO_STATE_CHANGED");
//state: 0:audio disconnected; 1:conneting; 2:connected
int state = intent.getIntExtra(BluetoothProfile.EXTRA_STATE, -1);
Log.e(TAG,"ACTION_AUDIO_STATE_CHANGED:: state = " + String.valueOf(state));
}
}
};
public void RegisterBd(){
IntentFilter filter = new IntentFilter();
filter.addAction(BluetoothHeadsetClient.ACTION_CONNECTION_STATE_CHANGED);
filter.addAction(BluetoothHeadsetClient.ACTION_CALL_CHANGED);
filter.addAction(BluetoothHeadsetClient.ACTION_AUDIO_STATE_CHANGED);
registerReceiver(broadcastReceiver, filter);
}
}
相关文章推荐
- 监听有线/蓝牙耳机的插入与拔出,电话的状态及拦截-Android
- android 2.1 监听电话状态并自动接听来电
- 举例说明在android中用PhoneStateListener监听手机电话状态与用发送邮件来通知来电电话的号码
- android 2.1 监听电话状态并自动接听来电
- android 电话状态的监听(来电和去电)
- android 2.1 监听电话状态并自动接听来电
- 【android】 监听去电和来电电话状态
- android 监听电话状态
- android 监听电话状态
- android 2.1 监听电话状态并自动接听来电
- android 电话状态的监听(来电和去电)
- android 2.1 监听电话状态并自动接听来电
- android 2.1 监听电话状态并自动接听来电
- android 2.1 监听电话状态并自动接听来电
- Android监听电话状态
- android监听用户的拨打电话的状态
- android之通过phoneStateListener监听电话状态改变
- android在应用中监听系统的电话状态
- android 2.1 监听电话状态并自动接听来电
- android之通过phoneStateListener监听电话状态改变