如何识别它是否是Dropbox身份验证?

时间:2017-06-13 00:10:10

标签: android oauth dropbox dropbox-api

我打算在我的应用中使用不同的存储类型。我是从Dropbox开始的。它有一个有用的方法,用于意图,授权用户,并返回到上一个活动:

String key = settings.getString ("dropbox_key", "");
Auth.startOAuth2Authentication (SettingsActivity.this, key);

我可以使用活动中的onResume ()方法处理其数据,但我如何识别Dropbox auth,而不是Google和其他Oauth应用程序返回给它的数据,因为我想在一个中使用它活动,但获取不同的数据并将其写入不同的设置值。我认为这将是一种BROWSABLE类别类型活动,它由URL打开,Dropbox使用它作为回调并传递必要的参数,但我试图通过getIntent().getData()获取其数据,但它总是为空

Dropbox活动与其默认代码相关联,因此我无法通过自己的活动uri:

     <activity
        android:name="com.dropbox.core.android.AuthActivity"
        android:configChanges="orientation|keyboard"
        android:launchMode="singleTask"
        android:theme="@android:style/Theme.Translucent.NoTitleBar"
    >
        <intent-filter>

            <data android:scheme="db-xxxxxxxxxxx"/>

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

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

        </intent-filter>

    </activity>

提前致谢。

1 个答案:

答案 0 :(得分:1)

如果您在Android应用中使用Dropbox API v2 Java SDK,则应该在onResume as shown in the example app中处理应用授权流程的结束。

您可以使用Auth.getOAuth2Token的返回值来检查用户是否从Dropbox应用授权流程返回。也就是说,如果返回值为非null,则它是作为Dropbox应用程序授权流程返回的访问令牌。

如果为null,则表示由于Dropbox应用程序授权流程,用户未返回应用程序。