총 게시물 39,159건, 최근 1 건 안내 RSS 글쓰기
이전글  다음글  목록 글쓰기
[안드로이드]

broadcastReceiver로 usb연결상태 받기가 왜 안될까요? [자답으로 댓글에 남겼습니다. 필요하신분 참고하세요]

글쓴이 : 쏭아리 날짜 : 2018-02-06 (화) 12:06 조회 : 1538
글주소 : http://www.androidside.com/B49/169298
 
  추천 허브한의원 쇼핑몰
압구정역 5번출구, BR, 어라연, 자오연 화장품, 파노스 제품 판매 쇼핑몰.
www.ahcshop.co.kr
  BR고무부품소재 화승켐텍
BR고무부품제조, 미국NSF인증, 200여종의 규격 및 비규격 O-RING
www.hsct.co.kr
  비알 트리 엔터테인먼트
웨딩연주, 기업 행사 연주, 축하공연, 호텔연주등 : 클래식 & 재즈 연주 전문
www.brtree.co.kr
신청하기


안드로이드, 자바 그리고 다양한 질문에 대해 성실히 답해드립니다. Q&A Jang

usb attached와 detached를 받고 싶은데요.
아래 코드처럼 했는데....
해드셋이랑 비행기모드는 감지가 되어서 Toast가 뜨는데요.
usb는 왜 꽂을때와 뺄때 둘다 Toast가 안뜰까요?

usb는 다르게 해야하나요??



public class MainActivity extends AppCompatActivity {

    BroadcastReceiver myReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            Toast.makeText(MainActivity.this, intent.getAction(), Toast.LENGTH_SHORT).show();
        }
    };

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        IntentFilter filter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
        filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED);
        filter.addAction(Intent.ACTION_HEADSET_PLUG);
        filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED);
        filter.addAction(UsbManager.ACTION_USB_DEVICE_DETACHED);
        this.registerReceiver(myReceiver, filter);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        this.unregisterReceiver(myReceiver);
    }
}





질문자가 자신의 포인트 10 점을 걸었습니다.
답변하시면 포인트 2을, 답변이 채택되면 포인트 8을 드립니다.

질문답변 게시판에서 궁금한 사항을 해결하셨다면, 애써 답변해주신 분께 잘 되었다고 따뜻한 댓글 한마디 남겨주세요.
그리고 답변해주신 분의 글을 '추천' 해주세요.
추천받으신 분에게 1포인트가, 추천하신 분에게도 1포인트가 적립됩니다. ^^

OSKiller 2018-02-06 (화) 12:34
String ACTION_USB_ACCESSORY_ATTACHED

Activity intent sent when user attaches a USB accessory.

String ACTION_USB_ACCESSORY_DETACHED

Broadcast Action: A broadcast for USB accessory detached event.

이것도 추가 해보세요
댓글주소 추천 0 반대 0
     
     
쏭아리 2018-02-06 (화) 13:39
[@OSKiller] 
추가했는데 안되네요 ㅠㅜ
참고로 sdk는 compileSdkVersion 26

그리고 manifest에 
<uses-feature android:name="android.hardware.usb.host"/>
이건 추가해놓았습니다.

댓글주소 추천 0 반대 0
쏭아리 2018-02-06 (화) 13:59
아하하..... 자답입니다.
android.hardware.usb.action.USB_STATE 
이걸로 걸리네요. 
연결여부는 onReceive 내에서 
boolean isConnected = intent.getExtras().getBoolean("connected");
이걸로 true, false 감지됩니다.

음.. 근데 또 이상한건 컴퓨터로 usb연결하면 onReceive에 들어오는데 그냥 충전기를 꽂으면 또 안되네요. 이건 또 다른가봅니다. 

참고사이트
https://stackoverflow.com/questions/39942453/how-to-receive-usb-connection-status-broadcast?answertab=votes#tab-top
댓글주소 추천 0 반대 0
이전글  다음글  목록 글쓰기

 


Copyright ⓒ www.androidside.com. All rights reserved.
채팅 권한: 글쓰기 1개
2레벨 이상만 대화 가능
공개 채팅: 평일 !(9시 ~ 17시),토,일
안사2 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기