Twitterの認証画面でのキャンセルボタンの検知
現在TwitterとAndroidを連携させたアプリを作っています。
Twitterの認証ページに飛ぶと「連携アプリを認証」と「キャンセル」というボタンがあり、「連携アプリを認証」を押すと認証が終わり投稿できるのですが、認証ページで「キャンセル」を押すと java.lang.RuntimeException: An error occured while executing doInBackground()
というエラーが返ってきてアプリが落ちてしまいます。多分僕が予想するに、キャンセルボタンが押されても「連携アプリを認証」が押された時のような投稿処理が行われているのかなと思います。
そこでキャンセルボタンが押されたことを検知したいのですが、検知する方法はあるのでしょうか?ご教授いただけますと幸いです。ちなみにTwitter4J
というライブラリを使っています。すみませんが、よろしくお願いします。
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:300)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Caused by: java.lang.NullPointerException
at libcore.net.UriCodec.encode(UriCodec.java:132)
at java.net.URLEncoder.encode(URLEncoder.java:57)
at twitter4j.HttpParameter.encode(HttpParameter.java:261)
at twitter4j.auth.OAuthAuthorization.encodeParameters(OAuthAuthorization.java:384)
at twitter4j.auth.OAuthAuthorization.encodeParameters(OAuthAuthorization.java:367)
at twitter4j.auth.OAuthAuthorization.normalizeRequestParameters(OAuthAuthorization.java:351)
at twitter4j.auth.OAuthAuthorization.generateAuthorizationHeader(OAuthAuthorization.java:198)
at twitter4j.auth.OAuthAuthorization.generateAuthorizationHeader(OAuthAuthorization.java:250)
at twitter4j.auth.OAuthAuthorization.getAuthorizationHeader(OAuthAuthorization.java:66)
at twitter4j.HttpClientImpl.setHeaders(HttpClientImpl.java:207)
at twitter4j.HttpClientImpl.handleRequest(HttpClientImpl.java:90)
at twitter4j.HttpClientBase.request(HttpClientBase.java:53)
at twitter4j.HttpClientBase.post(HttpClientBase.java:82)
at twitter4j.auth.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:124)
at twitter4j.auth.OAuthAuthorization.getOAuthAccessToken(OAuthAuthorization.java:138)
at twitter4j.TwitterBaseImpl.getOAuthAccessToken(TwitterBaseImpl.java:328)
at com.example.appdev.ipsns.twitter.TwitterOAuthActivity$2.doInBackground(TwitterOAuthActivity.java:77)
at com.example.appdev.ipsns.twitter.TwitterOAuthActivity$2.doInBackground(TwitterOAuthActivity.java:73)
at android.os.AsyncTask$2.call(AsyncTask.java:288)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)