为什么Android浏览器会拒绝我从OAuth回拨的权限?

时间:2010-09-29 07:17:08

标签: java android oauth

我正在尝试让OAuth为服务提供商网站工作。在回调之前,一切都很顺利。它实际上是使用正确的URL回调(我在提供商的注册网站上指定的URL以及对provider.retrieveRequestToken()的调用

我这样做:

provider.retrieveRequestToken(消费者,“my-app:///”);

我实际得到的网址正是我所期待的 - “my-app:///?[包括我的访问令牌在内的一堆参数]”

但此时浏览器显示我无权访问该网址。我的清单设置如下:

<activity android:name=".Selector"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        <intent-filter>
             <action android:name="android.intent.action.VIEW" />
             <category android:name="android.intent.category.DEFAULT" />
             <category android:name="android.intent.category.BROWSABLE" />
             <data android:scheme="my-app"/>
        </intent-filter>
        </activity>

我错过了什么吗?也许是许可?

2 个答案:

答案 0 :(得分:0)

我在SMS Backup+中实现了基于意图的OAuth回调。从用户反馈我发现一些浏览器(例如Opera Mini)实际上不能正确处理非http方案,所以这也是问题所在。首先使用股票浏览器尝试使用模拟器。

某些手机(Droid X)默认情况下甚至附带破碎的浏览器,因此此方法无法跨设备可靠地运行。我目前正在寻找更好的解决方案,另一种方法是使用OOB回调处理,但这不是非常用户友好。

答案 1 :(得分:0)

尝试在manifest.xml中添加互联网访问权限

<uses-permission android:name="android.permission.INTERNET" />