- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我无法从我的 fragment 中启动 Google Place Picker。按照根本原因的所有步骤和论坛进行操作,但无法解决我的问题。
链接 Google Place Picker
已经检查过以下但没有成功
Android Place Picker closes immediately after launch
Place Picker Automatically close after launch
我已经为 Android key 创建了 Google Places API 并添加到 list
我什至尝试过发布版本。
我收到的唯一错误信息是
03-18 12:02:32.524 1679-1900/? E/GCoreFlp: Location requests inside Google
Play services must contain a tag to aid in debugging. Use LocationRequestInternal.create to wrap your LocationRequest, and pass it to requestLocationUpdates.
03-18 12:02:32.527 29916-29916/? E/PlacePicker: Place Picker closing due to ERROR
需要帮助
我的 list 文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tyagiabhinav.test">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="KEY-REMOVED-ON-STACKOVERFLOW" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
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>
</application>
</manifest>
我的 Gradle 文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.tyagiabhinav.test"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.android.gms:play-services-location:8.4.0'
}
我的 fragment 代码
package com.tyagiabhinav.test;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.v4.app.ActivityCompat;
import android.support.v4.app.Fragment;
import android.support.v4.content.ContextCompat;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import com.google.android.gms.common.ConnectionResult;
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.common.GooglePlayServicesRepairableException;
import com.google.android.gms.common.api.GoogleApiClient;
import com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks;
import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener;
import com.google.android.gms.location.LocationServices;
import com.google.android.gms.location.places.Places;
import com.google.android.gms.location.places.ui.PlacePicker;
/**
* Created by abhinavtyagi on 18/03/16.
*/
public class MainFragment extends Fragment implements ConnectionCallbacks, OnConnectionFailedListener {
private View rootView;
private GoogleApiClient mGoogleApiClient;
private boolean isLocationServiceConnected = false;
private static final String LOG_TAG = MainFragment.class.getSimpleName();
private static final int PLACE_PICKER_REQUEST = 7;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.main_fragment, container, false);
if (mGoogleApiClient == null) {
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(LocationServices.API)
.addApi(Places.GEO_DATA_API)
.addApi(Places.PLACE_DETECTION_API)
.build();
}
Button btn = (Button) rootView.findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(LOG_TAG, "Clicked");
if (ContextCompat.checkSelfPermission(getActivity(),
Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(getActivity(),
Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
Log.d(LOG_TAG, "Ask for Permission");
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), Manifest.permission.ACCESS_FINE_LOCATION)) {
// Show an expanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, PLACE_PICKER_REQUEST);
} else {
// No explanation needed, we can request the permission.
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, PLACE_PICKER_REQUEST);
}
} else {
Log.d(LOG_TAG, "Permission Available");
placePicker();
}
}
});
return rootView;
}
private void placePicker() {
if (isLocationServiceConnected) {
Log.d(LOG_TAG, "Connected to location service");
PlacePicker.IntentBuilder intentBuilder = new PlacePicker.IntentBuilder();
try {
Intent intent = intentBuilder.build(getActivity());
startActivityForResult(intent, PLACE_PICKER_REQUEST);
} catch (GooglePlayServicesRepairableException e) {
e.printStackTrace();
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
}
} else {
Log.d(LOG_TAG, "Not connected to location service");
Toast.makeText(getActivity(), "Not connected to location service", Toast.LENGTH_LONG).show();
}
}
@Override
public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
Log.d(LOG_TAG, "onRequestPermissionsResult");
switch (requestCode) {
case PLACE_PICKER_REQUEST: {
// If request is cancelled, the result arrays are empty.
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
Log.d(LOG_TAG, "Permission Granted");
// permission was granted, yay! Do the
// contacts-related task you need to do.
placePicker();
} else {
Log.d(LOG_TAG, "Permission Denied");
// permission denied, boo! Disable the
// functionality that depends on this permission.
Toast.makeText(getActivity(), "Location Permission is required for accessing Place Picker!", Toast.LENGTH_LONG).show();
}
return;
}
// other 'case' lines to check for other
// permissions this app might request
}
}
@Override
public void onStart() {
super.onStart();
if (mGoogleApiClient != null)
mGoogleApiClient.connect();
}
@Override
public void onStop() {
if (mGoogleApiClient != null && mGoogleApiClient.isConnected()) {
mGoogleApiClient.disconnect();
}
super.onStop();
}
@Override
public void onConnectionFailed(ConnectionResult connectionResult) {
Log.d(LOG_TAG, "Location Connection Failed");
isLocationServiceConnected = false;
}
@Override
public void onConnected(Bundle bundle) {
Log.d(LOG_TAG, "Location Service Connected");
isLocationServiceConnected = true;
}
@Override
public void onConnectionSuspended(int i) {
Log.d(LOG_TAG, "Location Service Suspended");
isLocationServiceConnected = false;
}
}
最佳答案
错误地放置了元数据标签
更正 list 文件 :P
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tyagiabhinav.test">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="KEY-REMOVED-ON-STACKOVERFLOW" />
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
关于android - Place Picker 在启动后关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36077696/
我正在寻找一个使用 iCloud for Xamarin Form for iOS 的文件选择器库。目前我正在使用 FilePicker-Plugin-for-Xamarin-and-Windows用
我对选择器 View 有一些疑问我有两个选择器 View 选择器 View 1 = getpPlandateDCPlanData选择器 View 2 = getpShipmentDCPlanData
当我在运行 npm install 后克隆一个 angular 4 项目时,我有 angular-cli 1.5.6,当使用 ng serve 服务项目时,我得到了这个错误 ng2-日期选择器 ERR
当升级到 react-native 0.61.2 时,这个问题出现了。我做到了从手机中删除了 apk 和自动链接使用 react-native link 然后 react-native run-and
当升级到 react-native 0.61.2 时,这个问题出现了。我做到了从手机中删除了 apk 和自动链接使用 react-native link 然后 react-native run-and
Picker reference 4月24日更新。子类 DocsView 现在有一个函数 setEnableSharedDrives(),但是 Picker 抛出异常并且不显示 View 。 这是一个
我正在使用 DayPickerInput,我将其设置为 this (具有 2 天选择器输入的范围)。我想始终显示覆盖,我不想隐藏它。我知道 showOverlay Prop ,但它只在初始渲染期间显示
如何将类添加到 react-day-picker 的今天按钮? 从文档中似乎是可能的: http://react-day-picker.js.org/api/DayPicker#classNames
我正在尝试使用 react-native-picker-select 包。根据他们的文档,@react-native-picker/picker 是一个依赖项。但是.. 将此包添加到我的 RN 应用程
我正在开发一个 SwiftUI View ,其目的是允许用户输入美元金额。我想要一排七个轮式选取器,每个值都是数字 0 到 9。 以下代码有效,除了,当我尝试触摸并拖动数字列以滚动它时,我发现我的拖动
我正在尝试使用 react-native-picker-select 包。根据他们的文档,@react-native-picker/picker 是一个依赖项。但是.. 将此包添加到我的 RN 应用程
在屏幕上我有 UIDatePicker。如果有简单的选择器就简单了。可能是这样的: app.pickeWheels["my_id_picker"].adjustToPickerWheelValue("
我想更改标签 我的 ,例如当语言改变时,由另一个按钮 ( react-redux ) 触发。 key和 value应该保持不变,只有 label变化。 不幸的是结果是重新渲染(?)和selected
这是我的示例代码,在 Android 中我无法第一次选择第一个 Picker Item,我创建了一个虚拟项目所以我需要隐藏第一个字段。 this.setState({selectedValue: i
我正在使用 Google Picker Api。 Google Picker 显示正常,但是当我选择一个文件(选择一个文件并单击 Select 按钮或双击一个文件)时,我收到此警报:An embedd
我正在尝试将简单的 GMSPlacePicker 示例转换为 Swift 但是选择器会出现,但一旦从右到左的过渡完成,它就会立即消失。 // ViewController.swift imp
我确信有一种方法可以做到这一点,但我还不知道如何实现。 我想做的是添加一个 Picker 组件,但不是对项目列表进行硬编码,而是从服务中获取该组件,并将 Picker 绑定(bind)到我稍后可以填充
我正在尝试对这段代码进行快照测试: import React, { Component } from 'react'; import { Picker, } from 'react-native'
我将 Place Picker 添加到我的 android 应用程序中。当您知道要选择的地点的地址并填写研究栏时,它就会起作用。但是我希望用户可以在使用红色选择器时选择他选择的位置,而这部分不起作用。
我想知道是否有任何适用于 iOS 的简单 Facebook 照片选择器 Controller 可以显示 facebook 相册和他们的照片,并让用户从中挑选照片。类似于 iOS Facebook SD
我是一名优秀的程序员,十分优秀!