为什么我的项目未被授权使用 API 密钥?

Why is my project not authorized to use an API key?

我为需要地图和当前位置信息的 android 应用程序生成了 API 密钥。 API 密钥一定没问题,因为我可以访问当前位置和地图。但是当我尝试以下代码时:-

 public void run(){
        String addressURL = "https://maps.googleapis.com/maps/api/geocode/json?latlng="
                +Double.toString(lat)+","+Double.toString(lon)+"&sensor=true&key="+getString(R.string.api_key);
        Log.d(Globals.TAG, "Request to = " + addressURL);
        httphandler = new HttpHandler(addressURL);
        httphandler.addHttpLisner(MapsActivity.this);
        httphandler.sendRequest();
    }

   if (http.getResCode() == HttpURLConnection.HTTP_OK
                    || http.getResCode() == HttpURLConnection.HTTP_ACCEPTED) {
                String resp = http.getResponse();
 }

我得到响应 = { "error_message" : "This API project is not authorized to use this API.", "results" : [], "status" : "REQUEST_DENIED" }

不知道为什么?我正在分享我的 google 控制台 API 按键设置图片:-

我的API按键设置是否正确?如何为 HttpHandler 使用 API 密钥?

点击左边的库搜索地图api启用它。

您可能还必须启用结算帐户。

为了扩展 API 限制,您必须先启用 Geocoding API ...

然后可以将其分配为 "API Restriction"(由于其他限制而需要)。

对于 HTTPS REST API 访问,您可能不需要 "Application Restrictions"、

因为这基本上等于网络应用程序从动态 IP 访问 API ...

然而,Geocoding API 需要为项目启用并允许密钥。

如果你想要 IP 限制,你必须使用你的应用程序调用你自己的网络服务,具有静态 IP。