2016-10-18 6 views
0

私はアンドロイドアプリでgoogleapisによって提供されるオートコンプリートを使用したいと思います。制限ありのアンドロイドのgoogle apisの使用

これは私がそのために使用していますコードです:

private static final String PLACES_API_BASE = "https://maps.googleapis.com/maps/api/place"; 
private static final String TYPE_AUTOCOMPLETE = "/autocomplete"; 
private static final String OUT_JSON = "/json"; 
private static final String API_KEY = "MY_API_KEY"; 

public static ArrayList autocomplete(String input) { 
    ArrayList resultList = null; 

    HttpURLConnection conn = null; 
    StringBuilder jsonResults = new StringBuilder(); 
    try { 
     StringBuilder sb = new StringBuilder(PLACES_API_BASE + TYPE_AUTOCOMPLETE + OUT_JSON); 
     sb.append("?key=" + API_KEY); 
     sb.append("&components=country:es&language=es"); 
     sb.append("&input=" + URLEncoder.encode(input, "utf8")); 

     URL url = new URL(sb.toString()); 
     conn = (HttpURLConnection) url.openConnection(); 
     InputStreamReader in = new InputStreamReader(conn.getInputStream()); 

     // Load the results into a StringBuilder 
     int read; 
     char[] buff = new char[1024]; 
     while ((read = in.read(buff)) != -1) { 
      jsonResults.append(buff, 0, read); 
     } 
    } catch (MalformedURLException e) { 
     Log.e(TYPE_AUTOCOMPLETE, "Error processing Places API URL", e); 
     return resultList; 
    } catch (IOException e) { 
     Log.e(TYPE_AUTOCOMPLETE, "Error connecting to Places API", e); 
     return resultList; 
    } finally { 
     if (conn != null) { 
      conn.disconnect(); 
     } 
    } 

問題は、私は私のAndroidアプリで使用するために私のAPI_KEYを制限したいということです。これを行うために、私はアプリケーションSHA-1証明書の指紋とアンドロイドのアプリケーションの制限を入れます。オートコンプリートを使用して指紋を入れて検証するにはどうすればよいですか?

答えて

0

アプリにウェブキーを保存すると安全ではありません。 httpリクエストを引き続き使用したい場合は、プロキシのように動作するサーバーコンポーネントを使用する方法があります。アプリからのリクエストを取得し、サーバーに安全に保存されているAPIキーを追加し、Googleにリクエストを実行しますあなたのアプリに結果を送り返します。

しかし、オートコンプリートAPIはAndroidでも利用できます。あなたはこれに従うことができますtutorial

関連する問題