0

こんにちは私はグーグルサービスに接続したいです。私はそれに接続するためのOAuthクライアントAPIです。私が使用しているリダイレクトuriは「http://localhost」です

しかし、「アクセスを許可する」を選択すると、別のアクティビティを開始したいと思います。ただし、[アクセスを許可]を押すとすぐに、次のオプションでインテントチューザーが開きます。1)ブラウザー2)プロジェクト名

これは、「表示」アクションでアクティビティを開始し、「BROWSABLE」カテゴリでターゲットアクティビティを宣言したためです。

しかし、「BROWSABLE」カテゴリを削除すると、ブラウザが直接表示されるため、ページが読み込まれません。

私が使用しているコードは次のとおりです。

String authenticationUrl= "https://accounts.google.com/o/oauth2/auth?   
scope=https://www.googleapis.com/"+
        "auth/userinfo.email+https://www.googleapis.com/auth/userinfo."+
            "profile";
    OAuthClientRequest request = null;
    try {
        request = OAuthClientRequest
               .authorizationLocation(authenticationUrl)
               .setClientId(CLIENT_ID)
               .setRedirectURI(REDIRECT_URI)
                .buildQueryMessage();
    } catch (OAuthSystemException e) {
        e.printStackTrace();
    }
    Intent intent = new Intent(Intent.ACTION_VIEW,
            Uri.parse(request.getLocationUri() + "&response_type=code"));
    startActivity(intent);

マニフェストでは、次のようにターゲットアクティビティを宣言しました。

  <activity android:name=".TestActivity"
              android:label="@string/app_name">
        <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="http" android:host="localhost"/>
        </intent-filter>
    </activity>

私の問題は、ユーザーが認証を受けた後に[アクセスを許可]ボタンを選択したときにインテントチューザーを開きたくないということです。

助けてください。

4

1 に答える 1

0

これを使用する代わりに:

Intent intent = new Intent(Intent.ACTION_VIEW,
            Uri.parse(request.getLocationUri() + "&response_type=code"));

Webビューを作成し、URLのコンテンツをロードする必要があります。これは、FacebookまたはTwitterが認証を行う方法です。Webviewを使用する場合は、多くのカスタマイズが可能になるため、WebViewClientを使用することをお勧めします。

于 2012-05-17T06:59:04.217 に答える