1

jb를 실행하는 뿌리 티브이 삼성 갤럭시 넥서스 전화를 사용하고 있으며 어떤 이유로 블루투스 연결 서비스에서 브로드 캐스트 인 텐트를받지 못하고 있습니다. 아래에서 내 리시버 매니페스트와 브로드 캐스트 리시버 코드를 찾을 수 있습니다. 모든 팁이나 아이디어는 인정 될 것입니다.Android 브로드 캐스트 수신기가 bluetooth.android.bluetooth.BluetoothDevice.ACTION_ACL_CONNECTED을 (를) 수신하지 못했습니다.

감사

여기 여기 여기 리시버

public void onReceive(Context context, Intent intent) { 
      String action = intent.getAction(); 

      //This is looking for the Wifi Connectivity Changes 
      if(action.equals("android.net.conn.CONNECTIVITY_CHANGE")){ 
       Log.d(TAG,"received: Wifi Connection Change");   
      } 
      //This is looking Bluetooth connection disconnect 
      else if(action.equals("android.bluetooth.BluetoothDevice.ACTION_ACL_DISCONNECTED") || 
      action.equals("android.bluetooth.BluetoothDevice.ACTION_ACL_DISCONNECTED_REQUESTED")){ 
       Log.d(TAG,"Received: Bluetooth Disconnected"); 

      } 
      //This is looking for Bluetooth connection established 
      else if(action.equals("android.bluetooth.BluetoothDevice.ACTION_ACL_CONNECTED")){ 
    Log.d(TAG,"Received: Bluetooth Connected"); 
      } 
     } 
+0

pre-JB에서 동일한 앱을 사용해 보셨습니까? 다른 말로 표현하면, JB가 문제이거나 위의 코드입니까? – Tom

답변

2

방송되고있는 새로운 의도이다 매니페스트

<receiver android:name=".ABroadcastReciever" > 
<intent-filter> 
<action android:name="android.bluetooth.BluetoothDevice.ACTION_ACL_CONNECTED" /> 
<action android:name="android.bluetooth.BluetoothDevice.ACTION_ACL_DISCONNECTED" /> 
<action android:name="android.bluetooth.BluetoothDevice.ACTION_BOND_STATE_CHANGED" /> 
<action android:name="android.bluetooth.BluetoothDevice.ACTION_FOUND" /> 
<action android:name="android.bluetooth.BluetoothDevice.BOND_BONDING" /> 
<action android:name="android.bluetooth.BluetoothDevice.ACTION_ACL_DISCONNECT_REQUESTED" /> 
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" /> 
</intent-filter> 
</receiver> 

입니다. 여기 을 찾는위한

<action android:name="android.bluetooth.a2dp.profile.action.CONNECTION_STATE_CHANGED" /> 

감사는 새로운 의도

1

내가 올바른 생각하면 나도 몰라,하지만 난이 줄 잘못이라고 생각 :

<action android:name="android.bluetooth.BluetoothDevice.ACTION_ACL_CONNECTED" /> 

그것은이 있어야합니다 하나 :

<action android:name="android.bluetooth.device.ACTION_ACL_CONNECTED" /> 

다른 것과 동일합니다. "device"에 대해 "BluetoothDevice"를 변경하십시오. broascast 유사한

또한 같은 일 :

if(action.equals("android.bluetooth.BluetoothDevice.ACTION_ACL_CONNECTED")) 

이 device.action.ACL_CONNECTED

+0

정말 고마워요! 내 BroadcastReceiver가 동력학을 등록한 이유가 매니페스트에 정의 된 정적 방송이 아니라 동작을 수신 한 이유를 파악하는 데 많은 시간을 낭비했습니다. – stefan

+0

이 솔루션은 나에게 적합하지 않습니다 (Nexus 6 Lollipop). 업데이트 된 솔루션에 대한 내 대답을 참조하십시오. –

0

의도 필터 동작에 대한

if(action.equals("android.bluetooth.device.action.ACL_CONNECTED")) 

변경 BluetoothDevice.ACTION_ACL_CONNECTED을이어야한다 올바르지 않습니다. 당신은 실제로 다음 사용하려는 :

<action android:name="android.bluetooth.device.action.ACL_CONNECTED" />

당신은 (상수 값에서 보면) official Android BluetoothDevice documentation에서이 값을 찾을 수 있습니다.