DropboxUnlinkedException - 如果你还没有设置会话访问令牌对,或者如果用户已撤销访问 [英] DropboxUnlinkedException - if you have not set an access token pair on the session, or if the user has revoked access

查看:146
本文介绍了DropboxUnlinkedException - 如果你还没有设置会话访问令牌对,或者如果用户已撤销访问的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想上传文件到Dropbox的。我已经配置清单文件,并写入以下code。请帮助我了解我在这里失踪。
活动的onClick

I am trying to upload a file to dropbox. I have configured manifest file, and written the below code. Please help me understand what I am missing here. Activity onClick

Intent uploadToDropbox = new Intent(this, SUploadDB2Dropbox.class); 
            startService(uploadToDropbox) ;

服务SUploadDB2Dropbox

Service SUploadDB2Dropbox

private DropboxAPI<AndroidAuthSession> mDBApi;

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        AppKeyPair appKeys = new AppKeyPair(God.DROPBOX_APP_KEY,
                God.DROPBOX_APP_SECRET);
        AndroidAuthSession session = new AndroidAuthSession(appKeys);
        mDBApi = new DropboxAPI<AndroidAuthSession>(session);
        mDBApi.getSession().startOAuth2Authentication(this);
        UploadDB2DropBox upload2DropBox = new UploadDB2DropBox(this, mDBApi);
        upload2DropBox.execute();
        return super.onStartCommand(intent, flags, startId);
    }

UploadDB2DropBox的AsyncTask

UploadDB2DropBox AsyncTask

@Override
    public String doInBackground(Object... params) {
        File file = new File(context.getDatabasePath(God.TABLE_ACTIVATIONS)
                + ".db");
        Log.d(God.TAG,
                "Database path "
                        + context.getDatabasePath(God.TABLE_ACTIVATIONS));

        FileInputStream inputStream = null;
        try {
            String newFileName;
            inputStream = new FileInputStream(file);

            newFileName = "/" + God.TABLE_ACTIVATIONS
                    + Calendar.getInstance().getTimeInMillis() + ".db";
            Log.d(God.TAG, "File path " + file.getName() + " len "
                    + inputStream.available());
            Log.d(God.TAG, " New Filename " + newFileName);
            Entry response = mDBApi.putFile(newFileName, inputStream,
                    file.length(), null, null);
            Log.d(God.TAG, "Uploaded file is " + response.rev);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
            Log.e(God.TAG, "FileNotFoundException");
        } catch (DropboxException e) {
            e.printStackTrace();n
            Log.e(God.TAG, "DropboxException");
        } catch (IOException e) {
            Log.e(God.TAG, "IOException");
            e.printStackTrace();
        } finally {
            if (inputStream != null) {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    Log.e(God.TAG, "IOException");
                }
            }
        }
        return null;
    }

我得到一个Dropbox的例外。屏幕并导航到保管箱允许用户屏幕(每次虽然)。

logcat的

02-23 11:44:19.435: D/AutoActivate(27289): Database path /data/data/com.swipex.autoactivate/databases/activations
02-23 11:44:19.436: D/AutoActivate(27289): File path activations.db len 8372224
02-23 11:44:19.546: D/AutoActivate(27289):  New Filename /activations1424672059436.db
02-23 11:44:19.702: E/AutoActivate(27289): DropboxException

清单文件

<activity
            android:name="com.dropbox.client2.android.AuthActivity"
            android:configChanges="orientation|keyboard"
            android:launchMode="singleTask" >
            <intent-filter>
                <data android:scheme="db-KEY_VALUE_HERE" />

                <action android:name="android.intent.action.VIEW" />

                <category android:name="android.intent.category.BROWSABLE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>

我得到一个UnlinkException

I am getting a UnlinkException

DropboxUnlinkedException - 如果你没有设置一个访问令牌,对上一届会议,或用户已撤销访问

DropboxUnlinkedException - if you have not set an access token pair on the session, or if the user has revoked access.

我是什么失踪?

推荐答案

可怕的Dropbox文件我必须说,

Terrible dropbox documentation I must say

public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(God.TAG, "Initializing Dropbox");
        AppKeyPair appKeys = new AppKeyPair(God.DROPBOX_APP_KEY,
                God.DROPBOX_APP_SECRET);
        AndroidAuthSession session = new AndroidAuthSession(appKeys);
        mDBApi = new DropboxAPI<AndroidAuthSession>(session);
        mDBApi.getSession().startOAuth2Authentication(this);
        if (mDBApi != null && mDBApi.getSession().authenticationSuccessful()) {
            try {
                // Required to complete auth, sets the access token on the session
                mDBApi.getSession().finishAuthentication();
                UploadDB2DropBox upload2DropBox = new UploadDB2DropBox(this,
                        mDBApi);
                upload2DropBox.execute();

                //String accessToken = mDBApi.getSession().getOAuth2AccessToken();
            } catch (IllegalStateException e) {
                Log.i(God.TAG, "Error authenticating", e);
            }
        }
        return super.onStartCommand(intent, flags, startId);
    }

这帮助。我不知道为什么Dropbox的不断要求从UI的许可。其愚蠢的,如果我必须保持请求允许使用此API。

This helped. I wonder why dropbox keeps asking for permission from the UI. Its stupid to use this api if I have to keep asking for permission.

这篇关于DropboxUnlinkedException - 如果你还没有设置会话访问令牌对,或者如果用户已撤销访问的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆