box-api を使用して電話からファイルをアップロードするアプリケーションを作成しました。次の方法でユーザーを認証します。
Intent intent = new Intent(this, BoxAuthentication.class);
intent.putExtra("API_KEY", Version.BOX_API_KEY);
startActivityForResult(intent, BOX_RESULT);
そして、次の方法でトークンが返されます。
if (resultCode == BoxAuthentication.AUTH_RESULT_SUCCESS)
{
if(data.getStringExtra("AUTH_TOKEN") != null) {
writeStringPref(Global.boxToken, data.getStringExtra("AUTH_TOKEN"), getApplicationContext());
} else {
toast("An error occured authenticating, please try again"); finish();
}
} else if (resultCode == BoxAuthentication.AUTH_RESULT_FAIL) {
toast("Unable to log into Box"); finish();
}
私のアップロード方法では、次の方法でボックスを呼び出します。
final Box box = Box.getInstance(Version.BOX_API_KEY);
次に、次の方法でファイルをアップロードするフォルダーを作成します。
box.createFolder(token, 0l, Global.folderName, true, new CreateFolderListener(){
@Override
public void onIOException(IOException e) {
//HANDLE
}
@Override
public void onComplete(BoxFolder boxFolder, String status) {
//DO STUFF
}
);
私が抱えている問題は、ユーザーが初めて認証したときに、保存されたトークンを使用してファイルをアップロードできることです。しかし、たとえば、1 時間後にフォルダーを作成するための呼び出しを行うと、ハングしているように見えます。何も返されず、リスナーのメソッドも呼び出されません。
これは、コードの更新をデバイスにプッシュしたときにも発生するようで、動作を停止し、唯一の解決策はユーザーを再認証することです。ドキュメントを読むと、トークンの有効期限が切れないようで、何も返されないため、無効ではないようです。
それが違いを生む場合、私はインテントサービスを介してこのコードを呼び出しています。
誰でも問題が何であるか考えていますか?