非推奨のGoogleウェブ検索API for Androidの代わり

私はAndroidアプリからGoogleを検索して結果を返そうとしています。私が見つけたものはすべて、Google Web Search APIを指していますが、このページではは廃止され、カスタム検索API をご覧ください。

新しいカスタム検索APIを使用すると、カスタム検索エンジンを作成したウェブサイトだけを検索することができます。私は誰もがGoogleを介してインターネットのすべてを検索したいです。

これどうやってするの?

0

2 答え

Androidには検索機能のロット(すべてが組み込まれています)があります。

ここを見て:

http://developer.android.com/guide/topics/search/index.html

Google CodeとAndroid SDKは2つの異なるものです。 Web Search APIはGoogle Codeであり、注目されていますが、実際にはGoogleカスタム検索のために推奨されていません。

http://code.google.com/apis/customsearch/v1/overview.html

http://www.google.com/cse/

最後に、Bing/Yahoo!を呼び出す方法を示す良いブログエントリがあります。 Androidからのウェブ検索:

http://www.codexperiments.com/ java/2011/01/your-own-web-search-application/を作成する

率直に言って、Bing APIはGoogle Custom Searchよりもずっと優れているようです。 BingのAPIがカスタム検索のように1日100クエリに制限されないという事実から始まる:)

「助けてほしい!

3
追加された
私はそれらを使用して私のアプリケーションに検索結果を返すことができるので、私はそれらを私が望むように表示することができますか?
追加された 著者 Peter,
はい、もちろん。 Bing APIはJSON、btwを使用しています...
追加された 著者 paulsm4,

あなたはBing検索APIを使うことができます -

まず、Microsoftでアカウントを作成してアカウントキーを取得し、次のように使用する必要があります。

import android.os.AsyncTask;
import android.util.Log;

import org.apache.commons.codec.binary.Base64;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

/**
 * Created by Asaf on 08/06/2014.
 */
public class SearchAsyncTask extends AsyncTask {

    private final String TAG = getClass().getName();

    @Override
    protected Void doInBackground(Void... params) {
        try {
            String bingUrl = "https://api.datamarket.azure.com/Bing/SearchWeb/v1/Web?Query=%27pinhassi%27";

            String accountKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
            byte[] accountKeyBytes = Base64.encodeBase64((accountKey + ":" + accountKey).getBytes());
            String accountKeyEnc = new String(accountKeyBytes);

            URL url = null;
            url = new URL(bingUrl);

            URLConnection urlConnection = url.openConnection();
            urlConnection.setRequestProperty("Authorization", "Basic " + accountKeyEnc);
            InputStream response = urlConnection.getInputStream();
            String res = readStream(response);
            Log.d(TAG, res);


        } catch (Exception e) {
            e.printStackTrace();
            Log.e(TAG, e.getMessage());
        }

        return null;
    }

    private String readStream(InputStream in) {
        BufferedReader reader = null;
        StringBuilder sb = new StringBuilder();
        try {
            reader = new BufferedReader(new InputStreamReader(in));
            String line = "";
            while ((line = reader.readLine()) != null) {
                //System.out.println(line);
                sb.append(line + "\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (reader != null) {
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return sb.toString();
    }

}
0
追加された