- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
作为 Android 的新手,我正在尝试为一个项目接触 google Map API。我想为谷歌地图实现 AutoComplete
。无论我做什么,我都会不断收到 Status{statusCode=NETWORK_ERROR, resolution=null}
。
我提到了一些 SO 问题,例如:
但是我无法解决这个问题。我将 mPlaceFilter
作为 null
传递,但 status.toString()
仍返回相同的错误
private ArrayList<PlaceAutocomplete> getAutocomplete(CharSequence constraint) {
if (mGoogleApiClient.isConnected()) {
Log.i("", "Starting autocomplete query for: " + constraint);
// Submit the query to the autocomplete API and retrieve a PendingResult that will
// contain the results when the query completes.
PendingResult<AutocompletePredictionBuffer> results =
Places.GeoDataApi.getAutocompletePredictions(mGoogleApiClient, constraint.toString(),mBounds, mPlaceFilter);
// This method should have been called off the main UI thread. Block and wait for at most 60s
// for a result from the API.
AutocompletePredictionBuffer autocompletePredictions = results.await(60, TimeUnit.SECONDS);
// Confirm that the query completed successfully, otherwise return null
final Status status = autocompletePredictions.getStatus();
if (!status.isSuccess()) {
Toast.makeText(mContext, "Error contacting API:: " + status.toString(),Toast.LENGTH_SHORT).show();
Log.e("", "Error getting autocomplete prediction API call: " + status.toString());
autocompletePredictions.release();
return null;
}
Log.i("", "Query completed. Received " + autocompletePredictions.getCount()
+ " predictions.");
// Copy the results into our own data structure, because we can't hold onto the buffer.
// AutocompletePrediction objects encapsulate the API response (place ID and description).
Iterator<AutocompletePrediction> iterator = autocompletePredictions.iterator();
ArrayList resultList = new ArrayList<>(autocompletePredictions.getCount());
while (iterator.hasNext()) {
AutocompletePrediction prediction = iterator.next();
// Get the details of this prediction and copy it into a new PlaceAutocomplete object.
resultList.add(new PlaceAutocomplete(prediction.getPlaceId(), prediction.getFullText(null)));
}
// Release the buffer now that all data has been copied.
autocompletePredictions.release();
return resultList;
}
Log.e("", "Google API client is not connected for autocomplete query.");
return null;
}
在logcat中,我可以看到
06-22 11:11:11.979 1730-24663/? E/AsyncOperation: serviceID=65, operation=GetAutoPredictions
OperationException[Status{statusCode=NETWORK_ERROR, resolution=null}]
at aimj.b(:com.google.android.gms:0)
at aily.a(:com.google.android.gms:39)
at iyv.run(:com.google.android.gms:14)
at jck.run(:com.google.android.gms:24)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at jho.run(:com.google.android.gms:0)
at java.lang.Thread.run(Thread.java:841)
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mapapp2">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:name="android.support.multidex.MultiDexApplication"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="My KEy" />
<!--<meta-data -->
<!--android:name="com.google.android.maps.v2.API_KEY" -->
<!--android:value="My KEy" />-->
</application>
最佳答案
这是我在之前的项目中所做的,它运行良好,可能对您有所帮助。
// Add this code in onCreate()
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, 0 , MainActivity.this)
.addApi(Places.GEO_DATA_API)
.build();
mGoogleApiClient.connect();
// AutoCompleteTextView AddOnTextChangeListener.
to_auto_txt.addTextChangedListener(new TextWatcher() {
public void afterTextChanged(Editable s) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
if (search_text.length <= 1) {
names = new ArrayList<String>();
parse = new paserdata();
parse.execute();
}
}
});
解析数据是异步任务。
public class paserdata extends AsyncTask<Void, Integer, Void> {
@Override
protected Void doInBackground(Void... params) {
if (mGoogleApiClient.isConnected()) {
PendingResult<AutocompletePredictionBuffer> results = Places.GeoDataApi.getAutocompletePredictions(mGoogleApiClient, search_text[0], BOUNDS_INDIA, null);
AutocompletePredictionBuffer autocompletePredictions = results.await(60, TimeUnit.SECONDS);
final com.google.android.gms.common.api.Status status = autocompletePredictions.getStatus();
if (!status.isSuccess()) {
System.out.println("Error getting autocomplete prediction API call: " + status.toString());
autocompletePredictions.release();
return null;
}
System.out.println("Query completed. Received " + autocompletePredictions.getCount() + " predictions.");
Iterator<AutocompletePrediction> iterator = autocompletePredictions.iterator();
ArrayList resultList = new ArrayList<>(autocompletePredictions.getCount());
while (iterator.hasNext()) {
AutocompletePrediction prediction = iterator.next();
names.add(prediction.getFullText(STYLE_BOLD).toString());
}
// Release the buffer.
autocompletePredictions.release();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// adp is ArrayAdapter object which declare globally.
adp = new ArrayAdapter<String>(getApplicationContext(),
android.R.layout.simple_list_item_1, names) {
@Override
public View getView(int position, View convertView,
ViewGroup parent) {
View view = super.getView(position, convertView, parent);
TextView text = (TextView) view
.findViewById(android.R.id.text1);
text.setTextColor(Color.BLACK);
return view;
}
};
// AutoCompleteTextView.
to_auto_txt.setAdapter(adp);
}
}
最后不要忘记断开 mGoogleApiClient 的连接。
@Override
public void onStop() {
mGoogleApiClient.disconnect();
super.onStop();
}
您也可以在 onDestroy() 内部断开连接。
关于android - Status{statusCode=NETWORK_ERROR, resolution=null} 即使将 "AutocompleteFilter"作为 null 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44691142/
WPF 文档和教程指出 WPF 与分辨率无关,据我所知,它会在不同分辨率(1600x1200 -> native 和 1024x768)和/或 DPI 设置下显示相同大小的窗口。但是,当我尝试示例应用
对于我的应用程序,我分析了 Kinect v2 的空间分辨率。 为了分析空间分辨率,我记录了一个垂直平面到给定距离的平面,并将平面的深度图转换为点云。然后我通过计算欧几里得距离将一个点与他的邻居进行比
有没有办法在 Android 上的 OpenGL ES 2.0 中将场景渲染为正常分辨率,然后将屏幕的另一部分渲染为较低分辨率? 如果我使用 GLES20.glViewPort() 并更改分辨率,它不
使用 CameraX.LensFacing.FRONT 时出现此错误, 在模拟器上测试 E/AndroidRuntime: FATAL EXCEPTION: main Process: met
我没有使用Firebase,这似乎是other问题的原因people 这是错误的屏幕截图: 这是我的依赖项列表: dependencies { implementation project('
我正在按照教程 (link) 将图像上传到 Firebase 数据库,但出现以下错误。我重新检查了 gradle 依赖项并启用了 multidex 支持,但错误仍然存在 java.lang.NoC
我正在尝试使用 durandal,但出现此错误: 错误: bower requirejs extra-resolution Unnecessary resolution: requirejs#~2.2
我的应用程序被苹果拒绝了,原因是“iPhone 应用程序还必须在 iPad 上运行而无需修改,iPhone 分辨率和 2X iPhone 3GS 分辨率”。Apple 建议“为了支持 iPad 3GS
我在我的网站上显示用户的gravatr图像。我怎么知道要使用的最佳高分辨率?例如哪个参数应该是“ s”。 https://secure.gravatar.com/avatar/?s=250 当然,这取
我正在开发一个网站,但我不知道“支持”的最低分辨率应该是多少。我知道它可以在所有分辨率下运行,但“支持”是指所有内容都适合页面而不需要左右滚动。我是否应该考虑“支持”1024x768? 最佳答案 除了
有谁知道ImageNet中图片的分辨率数据集? 抱歉,我在他们的网站或任何 papers 中都找不到它。 . 最佳答案 图像的尺寸和分辨率各不相同。许多应用程序将所有图像的大小调整/裁剪为 256x2
我已经陷入了这个问题:我需要使用 DPI=1200 和特定的打印尺寸来绘制图像。 默认情况下 png 看起来不错... png("test.png",width=3.25,height=3.25,un
我有一个包含 16.000 个条目的测量数组,形式为 [t] [value] 问题是我的数据记录器太慢了,我每秒只有测量点。对于我的模拟,我需要增加伪分辨率。这样每个时间步都除以 1000,每个测量值
我正在尝试使用“分辨率”媒体查询来确定屏幕的实际 DPI。 我正在做的代码是这样的: window.matchMedia(`(resolution: ${value}dpi)`).matches 但我
我正在开发一款支持多种分辨率的应用。我已经通过了http://developer.android.com/guide/practices/screens_support.html但找不到解决方案。 决
我已经从 GitHub 中提取了文件。现在我需要创建一个合并冲突。 如何在 GitHub 上故意创建合并冲突? 最佳答案 在两个分支中编辑同一行,并尝试合并 Merge conflicts in gi
有什么方法可以更改分辨率或为亚马逊 Kindle 键盘上的屏幕设置不同的边界?我的屏幕有一部分出现裂纹,我想解决这个问题。 我试过在文件系统中乱搞(通过 WiFi 连接),但我的所有属性更改都没有任何
This question already has answers here: Closed 11 years ago. Duplicate: Recommended website resoluti
Closed. This question is opinion-based。它当前不接受答案。 想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。 6年前关闭。
我在网站的几个部分中使用了 tinyscrollbar 插件。到目前为止,它运行良好。但现在由于某种原因,鼠标滚轮可以滚动,但拖放 slider 不能滚动。 我使用的分辨率是 1360x768,但我在
我是一名优秀的程序员,十分优秀!