Articles of google api client

在片段中使用enableAutoManage()

还有其他方法可以连接Google API客户端吗? 我使用自动完成的地方,我必须在MYFRAGMENT的某些地方使用此代码 mGoogleApiClient = new GoogleApiClient.Builder(MainActivity.this) .addApi(Places.GEO_DATA_API) .enableAutoManage(this, GOOGLE_API_CLIENT_ID, this) .addConnectionCallbacks(this).build(); 我的问题 enableAutoManage(this, GOOGLE_API_CLIENT_ID, this) .addConnectionCallbacks(this).build(); 我不能处理它,因为当我用getActivity()替换它时,我有很多问题需要进行转换 感谢您的帮助,对不起,如果这个问题很愚蠢。

javax.net.ssl.SSLHandshakeException:在握手时远程主机关闭连接,同时在bigquery中插入行

嗨,我正在研究Android应用程序,我已经集成了bigquery。 我发现有时我们在向大查询表插入数据时会遇到很多SSLexception。 我不知道如何处理这个问题。 请帮助究竟是什么原因导致这个问题。 这是相同的线程,但在进行流式插入api调用时没有回答Bigquery SSL错误 javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:946) ~[na:1.7.0_51] at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) ~[na:1.7.0_51] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) ~[na:1.7.0_51] at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) ~[na:1.7.0_51] at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:563) ~[na:1.7.0_51] at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185) ~[na:1.7.0_51] at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1091) ~[na:1.7.0_51] at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250) ~[na:1.7.0_51] at com.google.api.client.http.javanet.NetHttpRequest.execute(NetHttpRequest.java:77) ~[google-http-client-1.19.0.jar:1.19.0] at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:965) ~[google-http-client-1.19.0.jar:1.19.0] at com.google.api.client.googleapis.batch.BatchRequest.execute(BatchRequest.java:241) ~[google-api-client-1.19.1.jar:1.19.1] at com.livestream.analytics.datastorage.worker.InsertApiActor$$anonfun$2$$anonfun$4.apply(InsertApiActor.scala:131) ~[analytics-data-storage-worker_2.11-1.0.0.jar:1.0.0] at com.livestream.analytics.datastorage.worker.InsertApiActor$$anonfun$2$$anonfun$4.apply(InsertApiActor.scala:118) ~[analytics-data-storage-worker_2.11-1.0.0.jar:1.0.0] at com.livestream.analytics.common.store.bigquery.api.BigQueryApi$.withSyncClient(BigQueryApi.scala:71) ~[analytics-common_2.11-1.0.0.jar:1.0.0] […]

无声的谷歌login在Android的后台服务

我在我的android应用程序中运行后台服务。 我使用从login活动获得的IdToken在后端服务器进行身份validation。 该服务正在以START_STICKY模式运行,因此即使closures该应用程序,该服务也会继续在后台运行,以便从后端服务器获取任何通知。 我面临的问题是当IdToken过期时,我无法在服务本身中更新它。 如果令牌已过期,则callback函数不会收到任何结果。 如果令牌尚未过期,则会立即得到结果。 这里是signIn函数和handleSignIn函数的代码。 private void signIn() { new Thread(new Runnable() { public void run() { GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .requestIdToken("<My server_client_id>") .build(); GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(context) .addApi(Auth.GOOGLE_SIGN_IN_API, gso) .build(); OptionalPendingResult<GoogleSignInResult> opr = Auth.GoogleSignInApi.silentSignIn (mGoogleApiClient); if (opr.isDone()) { // If the user's cached credentials are valid, the OptionalPendingResult will […]

Android GoogleAPIClient – NoClassDefFoundError:com / google / android / gms / internal / zzsa

我正在开发一个应用程序,使用GoogleAPIClient(显然)获取用户当前位置在后台。 为了完成这个任务,我使用了带有WakefulBroadcastReceiver的IntentService(每小时获取位置)。 在开发环境中一切正常,但在Play Store中部署时,有些设备出现此错误: Fatal Exception: java.lang.NoClassDefFoundError: com/google/android/gms/internal/zzsa at com.google.android.gms.common.api.GoogleApiClient$Builder.<init>(Unknown Source) at tellerina.com.br.vivara.services.MyService.onHandleIntent(MyService.java:37) at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:157) at android.os.HandlerThread.run(HandlerThread.java:61) 我已经search了互联网的答案,但我没有find任何东西。 以下是出现exception的地方: mGoogleApiClient = new GoogleApiClient.Builder(MyApplication.getContext()) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(LocationServices.API) .build(); 非常感谢! 编辑 应用程序build.gradle buildscript { repositories { maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'io.fabric.tools:gradle:1.21.2' } } apply plugin: 'com.android.application' apply plugin: […]

获取'E / TokenRequestor:你有错误的OAuth2相关configuration。 详细的错误:INVALID_AUDIENCE'即使在提供准确的客户端ID之后

我在我的应用程序中提供了GoogleSignIn选项。 这是我的代码: public class SignupActivity extends AppCompatActivity { private static final int RC_SIGN_IN = 1; GoogleApiClient mGoogleApiClient; FirebaseAuth mAuth; TextView appName; ProgressDialog signinProgressDialog; CoordinatorLayout coordinatorLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_signup); // Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); // setSupportActionBar(toolbar); signinProgressDialog = new ProgressDialog(SignupActivity.this); coordinatorLayout = (CoordinatorLayout) findViewById(R.id.signupCoordinatorLayout); // Configure Google Sign In GoogleSignInOptions […]

检测或防止用户使用假的位置

我会阻止用户使用我的应用程序,如果他们假的位置。 所以我使用isFromMockProvider来检查位置是否是假的(请点击这里 )。 但是,在某些情况下, isFromMockProvider()可能会针对伪造的位置返回false。 public void onLocationChanged(Location location) { textView.append("long:"+location.getLatitude()+" – lat:"+location.getLongitude()+" – isMock :"+location.isFromMockProvider() + "\n"); } 我的情况是 :我使用应用程序假GPS位置伪造一个位置,然后我禁用假的位置,并去我的应用程序。 然后onLocationChanged用isFromMockProvider() = false返回假的位置 录像机 : https : //www.youtube.com/watch?v = rWVvjOCaZiI(在这个video中,我的当前位置是16.06,108.21,假的位置是36.26,138.28。在上一个video中可以看到位置是36.26, 138.28但isFromMockProvider = false) 在这种情况下,有没有办法检测用户是否使用了伪造的位置? 任何帮助或build议将不胜感激。 DEMO项目

GoogleApiClient:不会触发onConnected或onConnectionFailed

所以,我试图让我的最后一个位置使用GoogleApiClient。 我正在执行一个连接语句,但onConnected不会触发,也不是onConnectionFailed射击。 有任何想法吗? 备注:我在模拟器上运行它,而不是真正的设备。 在模拟器上浏览工作。 package com.example.jdc.testjdc; import android.location.Location; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import com.google.android.gms.common.api.*; import com.google.android.gms.drive.*; import com.google.android.gms.location.LocationServices; import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GooglePlayServicesUtil; import com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks; import com.google.android.gms.common.api.GoogleApiClient; import com.google.android.gms.location.LocationListener; import com.google.android.gms.location.LocationRequest; import android.support.v4.app.FragmentActivity; import android.widget.TextView; public class MainActivity extends ActionBarActivity implements GoogleApiClient.ConnectionCallbacks,GoogleApiClient.OnConnectionFailedListener { private GoogleApiClient mGoogleApiClient; private Location mLastLocation; […]

谷歌API客户端callback从未被调用

我试图使用谷歌服务API获取最后一个已知的位置,但是在我构buildGoogleApiClient之后,没有任何callback方法被触发。 我的活动如下所示: public class MainActivity extends Activity implements FragmentObserver, SessionSpotListObserver, ConnectionCallbacks, OnConnectionFailedListener{ //Objects used for the location API private Location mLastLocation; private GoogleApiClient mGoogleApiClient; // Request code to use when launching the resolution activity private static final int REQUEST_RESOLVE_ERROR = 1001; // Unique tag for the error dialog fragment private static final String DIALOG_ERROR = […]

java.net.UnknownHostException无法parsing主机“accounts.google.com”:在bigquery中插入行时没有与主机名关联的地址

嗨,我正在Android应用程序,我已经集成了BigQuery。 我发现在BigQuery表中插入logging时,我们有时会遇到很多exception。 我们不是这方面的专业知识,而是开始学习这项新技术。 如果你们能帮助我,这将是非常好的。 java.net.UnknownHostException: Unable to resolve host "accounts.google.com": No address associated with hostname at java.net.InetAddress.lookupHostByName(InetAddress.java:424) at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236) at java.net.InetAddress.getAllByName(InetAddress.java:214) at com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28) at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216) at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122) at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292) at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255) at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206) at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345) at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89) at com.android.okhttp.internal.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:197) at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:254) at com.google.aacaca(NetHttpRequest.java:77) at com.google.aacrp(HttpRequest.java:972) at com.google.aaaaha(TokenRequest.java:307) at com.google.aabaabf(GoogleCredential.java:384) at com.google.aaaach(Credential.java:489) at com.google.aaaaca(Credential.java:217) at com.google.aacrp(HttpRequest.java:859) […]

Android – 谷歌login与login屏幕,而不是自动login

我已经添加了一个Googlelogin到我的Android应用程序(步骤可以在编辑3这篇文章中find)。 一切正常,但我想做一些小的调整。 使用编辑3中的当前代码,每次启动应用程序时都会自动login,而无需login屏幕。 我想禁用此function,因为该应用将在平板电脑上使用,其他员工每天都要login该应用。 我开始删除mGoogleApiClient.connect(); 从onStart()方法,现在我又有了Googleloginbutton。 当我添加mGoogleApiClient.connect(); 到signInWithGoogle()我可以login与记住的用户。 我现在想要的是默认的Googlelogin屏幕,您可以在每次单击“login”button时填写Google电子邮件和密码,而不仅仅是login记住的用户。 (PS:请记住,在我的Android设备上,我目前在Settings -> Google Accounts只有一个用户,也许这就是为什么它会自动login,而不是selectselect哪个帐户应该连接。 当我的Android设备上有多个Google帐户时,我会testing它是否会有所不同。 好的,我已经添加了第二个Google帐户到我的Android设备,但我的应用程序仍然会自动login记住的用户,当我点击login.. 编辑2: 我还没有find我的问题的解决scheme呢。 我使用不同的方式loginGoogle,发现了一些更多的教程,例如使用AccountManager以便用户可以select设备上现有的Google帐户之一。 (我今天只读了这个方法,所以现在还没有任何代码示例,但这也不是我要找的东西。) 我可能已经在上面的post中已经说清楚了,但这是我想要在图片中解释的: 用户在他/她的Android设备上启动应用程序。 用户input他的Google帐户用户名(使用电子邮件)和密码 用户成功login后,我们可以使用应用程序做其他事情 PS:只要确定,这个login屏幕是Google自己的屏幕。 所以这不是我自己创build的login屏幕。 这在理论上使我能够保存input的密码,这违背了Google OAuth的协议。 编辑3(守则): 以下是我为了使Google Services工作到目前为止所做的工作。 现在我只需要弄清楚如何强制login屏幕或完全注销每次都会导致login屏幕。 我按照以下教程: http : //www.androidhive.info/2014/02/android-login-with-google-plus-account-1/ 从以下教程/网站中使用额外的信息: https://developers.google.com/+/mobile/android/getting-started https://developers.google.com/+/mobile/android/sign-in http://developer.android.com/google/play-services/setup.html#Setup 这生成了以下代码: AndroidManifest.xml中: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.testproject_gmaillogin" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="19" /> <uses-permission […]