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

checkSelfPermission 또는 Context 질문

0 추천
public static GPSLocation getInstance(Context context) {
        if (instance == null) {
            instance = new GPSLocation(context);
        }
        return instance;
    }

    public void unRegisterLocationUpdates(LocationListener listener) {
        if (ContextCompat.checkSelfPermission(여기,Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
                || ContextCompat.checkSelfPermission(여기,Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            this.locationManager.removeUpdates(listener);
            this.locationManager.removeUpdates(listener);
        }
    }

여기라고 해놓은 부분에 컨텍스트를 추가하라고 하는데

this, 위에 나와있듯이 리턴한 instance 등등 다넣어봐도 안되고

getActivity, getBaseContextActivity는 호출조차 안되네요 ㅠㅠ

wrong 1st argument required android.content.Context 라고 뜨는데 초보라서 답답하네여

제가 아직 Context개념이 생소한것도 있고

checkSelfPermission을 잘모르는데

혹시 이번 안드로이드M 버전부터 생긴 퍼미션체크에 대해 아시는분 있나요?

이전 버전은 앱을 만들땐 잘되것이 이제와서는 안되네요... 허허참..

도그풋러 (640 포인트) 님이 2015년 10월 18일 질문

2개의 답변

+1 추천
 
채택된 답변

GPSLocation 생성자에서 받은 context를 변수로 별도 저장해서 사용하시면 될 것 같습니다.

 

private Contexxt mContext;

GPSLocation(Context context) {

    mContext = context;

}

checkSelfPermission(mContext, ....)

마리노 (3,320 포인트) 님이 2015년 10월 19일 답변
도그풋러님이 2015년 10월 19일 채택됨
정말 감사합니다! 해결 되었습니다!
+1 추천
Context 전역변수를 두어 싱글턴 객체 호출할 때(getInstance(Context context)), 객체 생성시 전달받은 context 파라미터를 전역변수에 넣어주신 후 사용하시면 될 듯 하네요.
libre2k (7,420 포인트) 님이 2015년 10월 19일 답변
정말 감사합니다! 두분 모두 좋은 답변해주셔서 선택하기 어려웠는데 랜덤으로 윗분 선택했습니다 ㅠ 진짜 감사합니다
...