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

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

글쓴이 : 쏭아리 날짜 : 2018-02-06 (화) 12:06 조회 : 1126
글주소 : http://www.androidside.com/B49/169298
 
  G마켓 BR
올 봄 쇼핑을 바꾸는 쇼핑! G마켓 웰컴 30%+30% 더블쿠폰, BR
www.gmarket.co.kr
  추천 허브한의원 쇼핑몰
압구정역 5번출구, BR, 어라연, 자오연 화장품, 파노스 제품 판매 쇼핑몰.
www.ahcshop.co.kr
  BR고무소재부품 화승켐텍
BR고무부품제조, 내열내한성 고무, HNBR, 불소고무, 불소실리콘, EPDM
www.hsct.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 변경사항 보러가기 챗방이 잘 안보이면 크롬에서 접속해주세요
챗방 숨기기 |  챗방 보이기