Автозаполнение Google Place Get Error: этот проект API не разрешается использовать этот API. Убедитесь, что этот API актAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Автозаполнение Google Place Get Error: этот проект API не разрешается использовать этот API. Убедитесь, что этот API акт

Сообщение Anonymous »

Я пытаюсь разработать карты с автозаполнением TextView с помощью Google API.

Код: Выделить всё

{
"error_message" : "This API project is not authorized to use this API.  Please ensure that this API is activated in the APIs Console: Learn more: https://code.google.com/apis/console",
"predictions" : [],
"status" : "REQUEST_DENIED"
}
Я попытался найти решение, и я попробовал все решение, например, чтобы использовать ключ для браузера , сервер , включить Google Place & Map , delete & Recrete Project , но я все еще получаю ошибку.public class MainActivity extends FragmentActivity {

AutoCompleteTextView atvPlaces;

DownloadTask placesDownloadTask;
DownloadTask placeDetailsDownloadTask;
ParserTask placesParserTask;
ParserTask placeDetailsParserTask;

GoogleMap googleMap;

final int PLACES=0;
final int PLACES_DETAILS=1;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

// Getting a reference to the AutoCompleteTextView
atvPlaces = (AutoCompleteTextView) findViewById(R.id.atv_places);
atvPlaces.setThreshold(1);

// Adding textchange listener
atvPlaces.addTextChangedListener(new TextWatcher() {

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// Creating a DownloadTask to download Google Places matching "s"
placesDownloadTask = new DownloadTask(PLACES);

// Getting url to the Google Places Autocomplete api
String url = getAutoCompleteUrl(s.toString());

// Start downloading Google Places
// This causes to execute doInBackground() of DownloadTask class
placesDownloadTask.execute(url);
}

@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}

@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
});

atvPlaces.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
atvPlaces.showDropDown();
return false;
}
});

// Setting an item click listener for the AutoCompleteTextView dropdown list
atvPlaces.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView arg0, View arg1, int index,
long id) {

ListView lv = (ListView) arg0;
SimpleAdapter adapter = (SimpleAdapter) arg0.getAdapter();

HashMap hm = (HashMap) adapter.getItem(index);

// Creating a DownloadTask to download Places details of the selected place
placeDetailsDownloadTask = new DownloadTask(PLACES_DETAILS);

// Getting url to the Google Places details api
String url = getPlaceDetailsUrl(hm.get("reference"));

// Start downloading Google Place Details
// This causes to execute doInBackground() of DownloadTask class
placeDetailsDownloadTask.execute(url);

}
});
}

private String getAutoCompleteUrl(String place){

// Obtain browser key from https://code.google.com/apis/console
String key = "key=";

// place to be be searched
String input = "input="+place;

// place type to be searched
String types = "types=geocode";

// Sensor enabled
String sensor = "sensor=false";

// Building the parameters to the web service
String parameters = input+"&"+types+"&"+sensor+"&"+key;

// Output format
String output = "json";

// Building the url to the web service
String url = "https://maps.googleapis.com/maps/api/pl ... parameters;

return url;
}

private String getPlaceDetailsUrl(String ref){

// Obtain browser key from https://code.google.com/apis/console
String key = "key=";

// reference of place
String reference = "reference="+ref;

// Sensor enabled
String sensor = "sensor=false";

// Building the parameters to the web service
String parameters = reference+"&"+sensor+"&"+key;

// Output format
String output = "json";

// Building the url to the web service
String url = "https://maps.googleapis.com/maps/api/pl ... parameters;

return url;
}

/** A method to download json data from url */
private String downloadUrl(String strUrl) throws IOException{
String data = "";
InputStream iStream = null;
HttpURLConnection urlConnection = null;
try{
URL url = new URL(strUrl);

// Creating an http connection to communicate with url
urlConnection = (HttpURLConnection) url.openConnection();

// Connecting to url
urlConnection.connect();

// Reading data from url
iStream = urlConnection.getInputStream();

BufferedReader br = new BufferedReader(new InputStreamReader(iStream));

StringBuffer sb = new StringBuffer();

String line = "";
while( ( line = br.readLine()) != null){
sb.append(line);
}

data = sb.toString();

br.close();

}catch(Exception e){
Log.d("Exception while downloading url", e.toString());
}finally{
iStream.close();
urlConnection.disconnect();
}
return data;
}

// Fetches data from url passed
private class DownloadTask extends AsyncTask{

private int downloadType=0;

// Constructor
public DownloadTask(int type){
this.downloadType = type;
}

@Override
protected String doInBackground(String... url) {

// For storing data from web service
String data = "";

try{
// Fetching the data from web service
data = downloadUrl(url[0]);
}catch(Exception e){
Log.d("Background Task",e.toString());
}
return data;
}

@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);

switch(downloadType){
case PLACES:
// Creating ParserTask for parsing Google Places
placesParserTask = new ParserTask(PLACES);

// Start parsing google places json data
// This causes to execute doInBackground() of ParserTask class
placesParserTask.execute(result);

break;

case PLACES_DETAILS :
// Creating ParserTask for parsing Google Places
placeDetailsParserTask = new ParserTask(PLACES_DETAILS);

// Starting Parsing the JSON string
// This causes to execute doInBackground() of ParserTask class
placeDetailsParserTask.execute(result);
}
}
}

/** A class to parse the Google Places in JSON format */
private class ParserTask extends AsyncTask{

int parserType = 0;

public ParserTask(int type){
this.parserType = type;
}

@Override
protected List doInBackground(String... jsonData) {

JSONObject jObject;
List list = null;

try{
jObject = new JSONObject(jsonData[0]);

switch(parserType){
case PLACES :
PlaceJSONParser placeJsonParser = new PlaceJSONParser();
// Getting the parsed data as a List construct
list = placeJsonParser.parse(jObject);
break;
case PLACES_DETAILS :
PlaceDetailsJSONParser placeDetailsJsonParser = new PlaceDetailsJSONParser();
// Getting the parsed data as a List construct
list = placeDetailsJsonParser.parse(jObject);
}

}catch(Exception e){
Log.d("Exception",e.toString());
}
return list;
}

@Override
protected void onPostExecute(List result) {

switch(parserType){
case PLACES :
String[] from = new String[] { "description"};
int[] to = new int[] { android.R.id.text1 };

// Creating a SimpleAdapter for the AutoCompleteTextView
SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), result, android.R.layout.simple_list_item_1, from, to);

// Setting the adapter
atvPlaces.setAdapter(adapter);
break;
case PLACES_DETAILS :
HashMap hm = result.get(0);

// Getting latitude from the parsed data
double latitude = Double.parseDouble(hm.get("lat"));

// Getting longitude from the parsed data
double longitude = Double.parseDouble(hm.get("lng"));

// Getting reference to the SupportMapFragment of the activity_main.xml
SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);

// Getting GoogleMap from SupportMapFragment
googleMap = fm.getMap();

LatLng point = new LatLng(latitude, longitude);

CameraUpdate cameraPosition = CameraUpdateFactory.newLatLng(point);
CameraUpdate cameraZoom = CameraUpdateFactory.zoomBy(5);

// Showing the user input location in the Google Map
googleMap.moveCamera(cameraPosition);
googleMap.animateCamera(cameraZoom);

MarkerOptions options = new MarkerOptions();
options.position(point);
options.title("Position");
options.snippet("Latitude:"+latitude+",Longitude:"+longitude);

// Adding the marker in the Google Map
googleMap.addMarker(options);

break;
}
}
}

}
< /code>

Пожалуйста, помогите мне, любая помощь будет признателен, спасибо! < /p>

Подробнее здесь: https://stackoverflow.com/questions/338 ... zed-to-use
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Google Place API (Place Searcher)
    Anonymous » » в форуме Android
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Как использовать Google Maps Place API (новый) в Python?
    Anonymous » » в форуме Python
    0 Ответы
    49 Просмотры
    Последнее сообщение Anonymous
  • ## React Native Document Ficker Error Error Error: `GuardEdresultAsynctask` не найдена
    Anonymous » » в форуме Android
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • ## React Native Document Ficker Error Error Error: `GuardEdresultAsynctask` не найдена
    Anonymous » » в форуме Android
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • ## React Native Document Ficker Error Error Error: `GuardEdresultAsynctask` не найдена
    Anonymous » » в форуме Android
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»