Android、Twitter 和 OAuth:不支持协议?
(工作代码更新后)
我一直在尝试让我的 Android 应用程序通过 Twitter 进行授权,然后在我的应用程序中使用回调 URL 捕获身份验证令牌。
我认为我的 AndroidManifest.xml 有问题。据我了解,如果我使用 android:launchmode="singleTask" 启动我的应用程序,那么我需要在主要活动的 onResume() 方法中检索 AccessToken 对象。
如果我没有指定 singleTask 启动,那么我需要在 onNewIntent() 方法中进行检索。
我已经在清单文件中尝试了两种方法,但我无法控制 onNewIntent() 或 onResume()。发生的情况是 Twitter 使用我的回调 URL 进行重定向,但随后网络浏览器只是显示“网页不可用”。 logcat 说:
Tab E onReceivedError -10 myapp://www.authtoke.app?oauth_token=2Y3jZMfHZ06Teezzy3l1KvlWqs961tsqXFlTgMHrA&oauth_verifier=PBfCueZLEzEteBoLTksDARQDRi3raVi5FiEJllCYus The protocol is not supported.
有人知道我搞砸了什么吗?这是清单条目:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.twitterLib"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:name=".myAppVars" android:icon="@drawable/ic_launcher" android:label="@string/app_name" >
<activity android:name=".TwitterLibActivity" android:label="@string/app_name" android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" > </action>
<category android:name="android.intent.category.LAUNCHER" ></category>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" > </action>
<category android:name="android.intent.category.DEFAULT" ></category>
<category android:name="android.intent.category.BROWSABLE" > </category>
<data android:scheme="myapp" android:host="www.authtoke.app"> </data>
</intent-filter>
</activity>
</application>
</manifest>
(post updated for working code)
I've been trying to get my android app to authorize with Twitter and then catch the auth token with a callback URL in my app.
I think I have something wrong in my AndroidManifest.xml though. From what I understand, if I launch my app using android:launchmode="singleTask" then I need to retrieve the AccessToken object in the onResume() method of my main activity.
If I do not specify singleTask launch, then I need to do the retrieval in the onNewIntent() method instead.
I've tried both ways in my manifest file but I'm not getting control in onNewIntent() or onResume(). What happens is Twitter redirects with my callback URL but then the webbrowser just says "Webpage not available". and logcat says:
Tab E onReceivedError -10 myapp://www.authtoke.app?oauth_token=2Y3jZMfHZ06Teezzy3l1KvlWqs961tsqXFlTgMHrA&oauth_verifier=PBfCueZLEzEteBoLTksDARQDRi3raVi5FiEJllCYus The protocol is not supported.
anyone know what I've got mucked up? Here's the manifest entries:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test.twitterLib"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:name=".myAppVars" android:icon="@drawable/ic_launcher" android:label="@string/app_name" >
<activity android:name=".TwitterLibActivity" android:label="@string/app_name" android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" > </action>
<category android:name="android.intent.category.LAUNCHER" ></category>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" > </action>
<category android:name="android.intent.category.DEFAULT" ></category>
<category android:name="android.intent.category.BROWSABLE" > </category>
<data android:scheme="myapp" android:host="www.authtoke.app"> </data>
</intent-filter>
</activity>
</application>
</manifest>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在这里找到答案:androidforums.com/introductions/...。编辑清单,使其有效。我将 VIEW、DEFAULT 和 BROWSABLE 项移至第二个意图过滤器节中。
Found the answer here: androidforums.com/introductions/…. Edited manifest so it works. I moved the VIEW, DEFAULT and BROWSABLE items into a second intent-filter stanza.