您的位置:首页 > 移动开发 > Android开发

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);

  }

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: