마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Vibrator 질문있습니다.

0 추천
첫번째 질문입니다. MainActivity 안에서 shownotificaiton() 이라는 메소드를 만들어서

Vivrator mVivrator = (Vibrator) getSystemService(contextm.VIBRATOR_SERVICE);

라는 진동 서비스 객체를 만들었습니다. 근대 이부분에서 에러가 나더라구요

찾아보니까 이유는 CONTEXT라는데 어찌 해야할지 모르겠습니다. 저 shownotification()메소드는

다른 클래스에서  MainActivity 클래스 객체를 선언한후 그 객체 메소드를 통해서 접근합니다.

그러니까 구체적으로 Bluetooth.java 에서 thread() 함수를 이용하여 리시브가 발생하면 MainActivity.java 의

객체를 생성하여 그 객체를 이용하여 메소드에 접근하는 방식입니다.

로그 에러는 이렇게 뜹니다.

E/AndroidRuntime: FATAL EXCEPTION: Thread-7074
                  Process: com.example.lbm.smombee, PID: 8021
                  java.lang.IllegalStateException: System services not available to Activities before onCreate()
초보코딩 (170 포인트) 님이 2018년 7월 17일 질문

1개의 답변

+1 추천
액티비티 객체를 직접 생성해서 사용하시지 마시고

MainActivity에서 Vibrator를 생성하여 bluetooth thread 생성 시 넘겨줘서

사용할 수 있게 해야 합니다.

 

아니면 bluetooth thread에서 진동이 필요할 때 핸들러나 브로드캐스트를 통해

MainActivity에 이벤트를 전달하여 진동을 발생시키는 형태로 해야 합니다.
원조안드로이드 (58,190 포인트) 님이 2018년 7월 18일 답변
질문에 대한 답변 감사드립니다. 그런대 궁금증이 해결되지 않아서 하나만 더 여쭤볼게요 MainActivity에서 Vibrator를 생성하여 bluetooth thread 생성 시 넘겨주라는 말씀이 어떻게 넘겨주라는건지 이해가 가질 않아서요 ..
...