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

트위터 연동 질문있어요ㅠ

0 추천
public void onActivityResult(final int requestCode, final int resultCode, final Intent resultIntent) {
		super.onActivityResult(requestCode, resultCode, resultIntent);
		if (resultCode == RESULT_OK) {
			if (requestCode == BasicInfo.REQ_CODE_TWIT_LOGIN) {
				try {
					Twitter mTwit = BasicInfo.TwitInstance;
					
					mAccessToken = mTwit.getOAuthAccessToken(BasicInfo.TwitRequestToken, resultIntent.getStringExtra("oauthVerifier"));
					
					BasicInfo.TwitLogin = true;
					BasicInfo.TWITTER_KEY_TOKEN = mAccessToken.getToken();
					BasicInfo.TWITTER_KEY_TOKEN_SECRET = mAccessToken.getTokenSecret();
					
					BasicInfo.TwitAccessToken = mAccessToken;
					BasicInfo.TwitScreenName = mTwit.getScreenName();
					
					Log.d(TAG, "TwitLogin : " + BasicInfo.TwitLogin);
					Log.d(TAG, "TWITTER_KEY_TOKEN : " + BasicInfo.TWITTER_KEY_TOKEN);
					Log.d(TAG, "TWITTER_KEY_TOKEN_SECRET : " + BasicInfo.TWITTER_KEY_TOKEN_SECRET);
					Log.d(TAG, "TwitAccessToken : " + BasicInfo.TwitAccessToken);
					Log.d(TAG, "TwitScreenName : " + BasicInfo.TwitScreenName);

				} catch (Exception ex) {
					ex.printStackTrace();
				}
			}
		}
	}

mAccessToken = mTwit.getOAuthAccessToken(BasicInfo.TwitRequestToken, resultIntent.getStringExtra("oauthVerifier"));

이클립스에서 디버그를 하면 위에 문장에서 에러가 납니다.

왜그런지 궁금합니다. 그리고 에러가 않나는 방법도 궁금합니다.

talcer (640 포인트) 님이 2014년 1월 27일 질문
에러 문구가 뭐라고 나오는데요?
android.os.NetworkOnMainThreadException

1개의 답변

+1 추천
 
채택된 답변
정확한 이유는 모르겠지만...getOAuthAccessToken 할 때 해당 코드에서 네트워크 관련 작업을 하는 것으로 판단됩니다.

안드로이드 버전 3.0 부터 네트워크 관련된 작업들은 별도에 쓰레드에서 작업하셔야 합니다.
wifi (1,340 포인트) 님이 2014년 1월 27일 답변
talcer님이 2014년 4월 29일 채택됨
답변 감사합니다. ^^
api 문서 보니 네트워크가 연결되어있지 않으면 exception 을 발생한다고 하네요... 참고하세요..

Throws:
TwitterException - when Twitter service or network is unavailable, or the user has not authorized
java.lang.IllegalStateException - when RequestToken has never been acquired
...