내 응용 프로그램은 다른 장치가 파일을 연결하고 전송할 수 있도록 특정 UUID
의 열린 Bluetooth 서버 소켓을 보유하고 있습니다. 나는 BroadcastReceiver
에 관해 약간 혼란 스럽다.Bluetooth 서버 및 BroadCastReceiver
Activity
을 확장하는 클래스에서 블루투스 어댑터의 상태를 확인하고 싶습니다. 그러나 내 BroadcastReceiver는 실행되지 않습니다. 나는 상태에 대한 질문이
public class MainClass extends Activity {
public void onCreate(Bundle b) {
super.onCreate(b);
IntentFilter filter = new IntentFilter(BluetoothAdapter.ACTION_STATE_CHANGED);
registerReceiver(mReceiver, filter);
}
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
final String action = intent.getAction();
Log.w("BroadcastReceiver: ", "Inside!");
if (action.equals(BluetoothAdapter.ACTION_STATE_CHANGED)) {
final int state = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE, BluetoothAdapter.ERROR);
switch (state) {
case BluetoothAdapter.STATE_OFF:
Log.d("Bluetooth Receiver", "State-off");
Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
break;
case BluetoothAdapter.STATE_TURNING_OFF:
Log.d("Bluetooth Receiver", "State turning off");
break;
case BluetoothAdapter.STATE_ON:
Log.d("Bluetooth Receiver", "State-on");
btCom = new BluetoothCommunicator(MainClass.this, lastCases, nist);
btCom.startServer();
break;
case BluetoothAdapter.STATE_TURNING_ON:
Log.d("Bluetooth Receiver", "State turning on");
break;
}
}
}
};
}
: 나는 브로드 캐스트 리시버이 방법을 사용하여 시도
- 상태 STATE_ON는 블루투스가 런타임 동안 켜져있을 때 이것은 단지 떨어져 해고입니까? 또는 블루투스를 켠 상태에서 애플리케이션을 시작할 수 있습니까?이 이벤트는 시작됩니다. 블루투스는 내가 그렇게 할 수있는 방법을 나는 또한 내 매니페스트 파일에 방송 수신기를 등록 할 필요가 읽어
, 켜져있는 경우 내가 방법 btCom.startServer()
을 시작하려는 왜냐면 브로드 캐스트 리시버는 활동을 확장하는 클래스에있는 경우 ? 내가 별도의 클래스에서이 브로드 캐스트 리시버를 가지고 있다면 내 패키지 이름이였습니다 instace이
말처럼 할 것 com.workbench
내 클래스 이름 BluetoothReceiver
매니페스트 다음과 같이 보일 것이었다
<receiver android:name="com.workbench.BluetoothReceiver"></receiver>