【问题标题】:How to make the Google client api connection?如何建立谷歌客户端api连接?
【发布时间】:2017-06-30 07:12:46
【问题描述】:

我在创建 google api 客户端连接首选项屏幕时遇到了问题。 google api 客户端在 oncreateView() 方法中连接成功,但我的问题是 google api 客户端必须在偏好开关打开时连接 google api 应该连接。

  mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
            .addApi(Drive.API)
            .addScope(Drive.SCOPE_FILE)
            .addConnectionCallbacks(this)
            .addOnConnectionFailedListener(this)
            .build();

将上面的内容放在 oncreateView() 中时效果很好。

    record.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
            @Override
            public boolean onPreferenceChange(Preference preference, Object newValues) {

                if (((Boolean) newValues)) {
 mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
                .addApi(Drive.API)
                .addScope(Drive.SCOPE_FILE)
                .addConnectionCallbacks(this)
                .addOnConnectionFailedListener(this)
                .build();

                    Toast.makeText(getActivity(), "Connection On", Toast.LENGTH_SHORT).show();
                } else {
                    Toast.makeText(getActivity(), "Connection OFF", Toast.LENGTH_SHORT).show();
                }

                return true;
            }
        });

在上面的代码中,google api 客户端连接放置在首选项开关中不起作用,正在发生异常。请帮助我如何解决这个问题。

单击首选项开关时会显示此异常

 E/MessageQueue-JNI: Exception in MessageQueue callback: handleReceiveCallback
06-30 12:45:59.810 4029-4029/com.seyali.callLog E/MessageQueue-JNI: java.lang.ClassCastException: com.seyali.callLog.SettingsActivity cannot be cast to com.google.android.gms.common.api.GoogleApiClient$ConnectionCallbacks
                                                                        at com.seyali.callLog.PreferenceFragments$4.onPreferenceClick(PreferenceFragments.java:233)
                                                                        at android.preference.Preference.performClick(Preference.java:996)
                                                                        at android.preference.PreferenceScreen.onItemClick(PreferenceScreen.java:249)

【问题讨论】:

  • 在此处发布异常
  • @akhilesh0707 我发布了异常
  • 这是指当前上下文。尝试检索应用程序上下文并应用于接受上下文的方法
  • @Stallion 我试过你的答案,不工作
  • @Stallion 实现 onCreateview() 时 google api 连接成功,但是当放在 onclick 上的首选项开关时它不起作用,显示异常。

标签: android android-googleapiclient


【解决方案1】:

在这样的活动中实现 GoogleApiClient.ConnectionCallbacks 和 GoogleApiClient.OnConnectionFailedListener

public class MainActivity extends Activity implements
    GoogleApiClient.ConnectionCallbacks,
    GoogleApiClient.OnConnectionFailedListener {}

【讨论】:

  • 公共类 PreferenceFragments 扩展 PreferenceFragment 实现 GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
  • 我在片段中添加了这个回调接口
  • 如果你在棉花糖设备上工作,它会询问许可
  • @HsRaja 我正在使用最大 sdk 版本 25 和最小 sdk 版本 19
  • 如何创建权限
猜你喜欢
  • 2020-05-16
  • 2017-10-28
  • 1970-01-01
  • 1970-01-01
  • 2015-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
相关资源
最近更新 更多