2017-05-10 5 views

Antwort

1

Nach vieler Forschung endlich ich die answer.Yes bekam ist es möglich, Google Maps Geolocation API in Android TV zu nutzen, aber mit einigen limitation.As pro den documentation vom The Karten Geolokalisierung Google gegeben API sie ist hauptsächlich Zweiweg um dies zu erreichen

1) Verwendung von Cell Tower.

2) Verwenden von WLAN-Zugangspunkten.

Nun, für die erste Art von Kurs ist es nicht möglich, weil Android TV keine Calling oder SIM-Funktion, so dass es keine Verbindung zum Cell Tower, so dass es nicht funktioniert.

Jetzt, für den 2. Weg ist es ziemlich interessant. Ich habe über diese Sache geforscht und diese Sache schließlich erfolgreich umgesetzt. Eine andere Sache, die ich festgestellt habe, und auch in der Dokumentation angegeben, dass mit der IP-Adresse wird es die höchste Genauigkeitsrate geben dann die Cell Tower und WIFI Access Points.So, halte ich beide WLAN Access Points und "considerIp": "true" für höchste Genauigkeitsrate.

Nach dieser viel Forschung ist meine eigentliche Aufgabe, dieses Ding zu implementieren, es ist ziemlich einfach für mich, dies zu implementieren, weil ich weiß, wie man die WIFI Access Points bekommt. So benutzte ich den folgenden Weg, um WIFI Access Points zu bekommen.

List<ScanResult> results; 
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE); 
results = wifiManager.getScanResults(); 

    String message = "No results found.Please Check your wireless is on"; 
    if (results != null) 
    { 
     final int size = results.size(); 
     if (size == 0) 
      message = "No access points in range"; 
     else 
     { 
      ScanResult bestSignal = results.get(0); 
      int count = 1; 
      for (ScanResult result : results) 
      { 
       if (WifiManager.compareSignalLevel(bestSignal.level, result.level) < 0) 
       { 
        bestSignal = result; 
       } 
      } 
     } 
    } 
    Toast.makeText(this, message, Toast.LENGTH_LONG).show(); 

Nach Liste von WLAN Access Points bekommen erstellen JSONObject den Pass zu dem API-Aufruf https://www.googleapis.com/geolocation/v1/geolocate?key=your_key .Ich Volley verwendet wurde diesen API.For nannte die JSONObject zu schaffen, die hier WLAN Access Points enthält, ist die wie ich benutzt wurde.

JSONObject parent; 
try { 
     parent = new JSONObject(); 
     parent.put("considerIp", false); 
     JSONArray jsonArray = new JSONArray(); 
     JSONObject jsonObject; 
     for (int i = 0; i < results.size(); i++) { 
      jsonObject = new JSONObject(); 
      jsonObject.put("macAddress", results.get(i).BSSID); 
      jsonObject.put("signalStrength", results.get(i).level); 
      jsonObject.put("signalToNoiseRatio", 0); 
      jsonArray.put(jsonObject); 
      System.out.println("jsonObject: " + jsonObject.toString(4)); 
     } 
     parent.put("wifiAccessPoints", jsonArray); 
     Log.d("output", parent.toString()); 
     System.out.println("parenttttt: " + parent.toString(4)); 
     txt_request.setText(parent.toString(4)); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 

Aus dem obigen Code wurde ich „parent.put (“ considerIp „false)“ der Grund für die Verwendung falsch verwendet wurde, war nichts anderes als nur geprüft, ob ich das genaue Ergebnis mit WLAN Access Points oder nicht bekam. Sie können es wahr machen und das Ergebnis sehen, was Sie bekommen.

Nach erfolgreicher Antwort haben Sie das Ergebnis erhalten, das dem Breiten- und Längengrad das Genauigkeitsverhältnis gibt, das anzeigt, wie genau das Ergebnis war. Sie haben die Antwort etwa so erhalten.

{ 
    "location": 
    { 
    "lat": your latitude, 
    "lng": your longitude 
    }, 
"accuracy": How accurate the result was [like 1523, 1400.25 etc.] 
} 

So erreichen Sie Google Maps Geolocation API in Android TV, das ist es.

0

Vom TV developer guide:

TVs sind stationär, Inneneinrichtungen und haben keine integrierten globalen Positionierungssystem (GPS) -Empfänger. Wenn Ihre App Standortinformationen verwendet, können Sie Benutzern weiterhin die Suche nach einem Standort erlauben oder einen Anbieter für statische Standorte verwenden, z. B. eine Postleitzahl, die während der Einrichtung des TV-Geräts konfiguriert wurde.

Wenn Sie dem Link folgen, sehen Sie Code, wie dies erreicht wird. Leider erhalten Sie nicht die genaue Position, aber je nach Ihren Anforderungen könnte dies ausreichend sein.

+0

danke für Ihre Antwort. Aber das wird mir nicht helfen, das, was du veröffentlichst, das ich bereits weiß. Meine Frage ist, ist es möglich, Google Maps Geolocation API in Android TV zu verwenden. Nach ein paar Recherchen habe ich die Antwort bekommen, aber noch nicht auf stackoverflow gepostet. –

+0

Dann beantworte bitte deine eigene Frage und markiere sie am nächsten Tag als Lösung. –

Verwandte Themen