Android, Twitter и OAuth: протокол не поддерживается? - PullRequest
0 голосов
/ 21 февраля 2012

(пост обновлен для рабочего кода)

Я пытался заставить мое приложение для Android авторизоваться с помощью Twitter, а затем ловить маркер авторизации с помощью URL-адреса обратного вызова в моем приложении.

Мне кажется, что-то не так в моем AndroidManifest.xml. Из того, что я понимаю, если я запускаю свое приложение с помощью android: launchmode = "singleTask", то мне нужно получить объект AccessToken в методе onResume () моей основной деятельности.

Если я не укажу запуск 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>

1 Ответ

1 голос
/ 06 марта 2012

Нашел ответ здесь: androidforums.com/introductions/…. Отредактировал манифест, чтобы он работал. Я переместил элементы VIEW, DEFAULT и BROWSABLE во второй раздел фильтра намерений.

...