当用户在搜索栏中搜索某个内容时,我使用Places为他获取建议。
我使用的代码如下:
// Obtain browser key from https://code.google.com/apis/console
String key = "key=" + context.getString(R.string.google_maps_key);
String input="";
try {
input = "input=" + URLEncoder.encode(place[0], "utf-8");
} catch (UnsupportedEncodingException e) {
DLog.d(e);
}
// place type to be searched
String types = "types=geocode";
// Sensor enabled
String sensor = "sensor=false";
String language = "language=it";
// Building the parameters to the web service
String parameters = input+"&"+types+"&"+sensor+"&"+key + "&" + language;
// Output format
String output = "json";
// Building the url to the web service
String url = "https://maps.googleapis.com/maps/api/place/queryautocomplete/"+output+"?"+parameters;
try{
// Fetching the data from we service
data = downloadUrl(url);
还有其他代码,但我认为这是必需的部分。然而,当我从Android Studio启动它时,它运行得很好,但当我安装签名的APK时,它完全不起作用。
我在地图上也遇到了同样的问题(保持空白),但在将我的SHA1密钥和包名称放入Google Console API后,它可以正常工作。但有些地方仍然没有。
你知道为什么它会这样工作吗?感谢:)
原因是您需要在Google控制台中添加调试密钥和发布密钥的SHA1。
我用过:
keytool -list -v -keystore /Users/fil/.android/debug.keystore
从android_sdk的平台工具foulder(尽管我在Mac中,在Linux中可能有所不同)获得调试密钥。然后,相同,但有释放键。
之后,我插入两个SHA1;在API&Auth foulder。
我还专门为一些地方创建了一个服务器密钥。