1

내가 안드로이드에 새로운 오전 그래서 난 당신이 내가 지금 모든 것이 내가 생성하고자 노력하고 내 전화가있는 일부 블루투스 장치를 제어 할 수있는 활동을했다 나의 무지통신 안드로이드

변명 할 수 있기를 바랍니다 이 액티비티의 새로운 클래스, 모든 블루투스 통신을 처리하는 클래스.

첫째 :

나는 몇 가지 질문을 가지고 나는 내 견해를 업데이트이 작업을 사용하여 ... STATE_ON, BOND_BONDED 같은 블루투스 어댑터의 일부 작업을 청취 한 방송 수신기를 채택 내 activty, 나는 몇 가지를 호출 방법 등등.

그래서이 브로드 캐스트 수신기 내 방에서 내 청취를 계속할 수 있습니다. 그런 다음 내 기본 활동에 변경 사항을 보내서보기를 업데이트하는 등의 작업이 가능합니까?

두 번째 : 필자는 내 블루투스 클래스의 정보를 내 기본 활동, 즉 내 장치에서 읽은 정보, 브로드 캐스트 리시버의 정보 등을 보내야합니다 ... 그래서 클래스간에 정보를 전달하는 가장 좋은 방법입니다. 주요 활동 은요?

글쎄, 당신의 도움을 주셔서 감사합니다 :)에 대한 많은

당신의 브로드 캐스트 리시버의 onReceive() 메소드가 메인 쓰레드에서 호출
+0

복제를 : //stackoverflow.com/a/4011057/534471 –

답변

0

: 는 "이 방법은 항상 프로세스의 메인 쓰레드 내에서 호출된다"(http://developer.android.com/reference/android/content/BroadcastReceiver.html#onReceive(android.content.Context, android.content.Intent)).

즉, onReceive() 메소드에서 ui를 업데이트 할 수 있습니다. 당신이해야 할 모든과 같이 로컬 클래스를 사용할 수 있습니다 :

BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     // update the ui 
    } 
}; 

등록이 수신기 프로그램 (대신 매니페스트에 정의의) 당신은 갈 수 있어요 : HTTP의

Context.registerReceiver(android.content.BroadcastReceiver, android.content.IntentFilter) 
+0

그래서 블루투스 클래스 안에서 블루투스 어댑터의 여러 상태를 얻으려는 BroadcastReceiver를들을 수 없습니까? – Juanpa

+0

그렇지만 브로드 캐스트 클래스의 수신기에서 BroadcastReceiver 이상의 브로드 캐스트를 보내야합니다. LocalBroadcastManager를 사용하여 브로드 캐스트를 전송할 수 있습니다 (더 효율적이고 보안 성이 뛰어납니다). –