我是android编程的新手。我打算制作一个对位置敏感的应用程序。
我正在尝试使用 Google Play 服务的基于位置的 API 来检测用户的当前位置。为此,我一直在关注示例代码和此处给出的详细信息:-
developer.android.com- 检测用户当前位置- Location APIs- Google Play Services
我试图了解检测用户当前位置所涉及的不同方法调用之间的联系。现在上面的链接虽然似乎有很多信息,但作为一个新手,我发现很难在这里连接不同的方法调用。
因此,我对上述 URL 中的代码的理解大致是这样的:-
- 在 MainActivity 类的 onCreate() 中,我们创建了一个 LocationClient。LocationClient 用于连接到位置服务。
- 现在在 MainActivity 类的 onStart() 中,我们调用 locationClientObjet.connect()。所以这意味着每当应用程序的 MainActivity 变得可见时,都会尝试连接到位置服务。
- 现在,在我们创建 LocationClient 之前,我们已经定义了一些称为位置服务回调的东西。
- 所以我们实现了所需的接口并定义了各自的方法。例如,当连接客户端的请求成功完成时,会调用 onConnected()。
现在到目前为止一切听起来都不错。当我尝试将上述部分与以下提到的部分连接时,就会出现问题:-
- 现在,甚至在我们定义定位服务回调之前,我们已经在 MainActivity 类中定义了一个内部类,称为 ErrorDialogFragment。我猜这个类是用来创建一个错误片段(比如一个警告框),它可以向用户显示错误消息,以防显然由于某种原因与定位服务的连接尝试失败。所以这里有一些我不明白的事情:-
- CONNECTION_FAILURE_RESOLUTION_REQUEST = 9000 有什么用;页面中的文档说:-定义发送到 Google Play 服务的请求代码。此代码在 Activity.onActivityResult 中返回。我不明白。
- 何时调用 ErrorDialogFragment 类中的 onCreateDialog()。我在上面提到的 URL 页面上提到的示例代码中的任何地方都没有找到对此方法的显式调用。
- onConnectionFailed() 和错误片段之间的联系是什么。
- 定义了另外 2 个方法:- onActivityResult() 和 servicesConnected()。我在一定程度上理解 servicesConnected() 的使用 - 它用于查看 GooglePlay 服务是否可用。它是用户定义的方法吗?它与在回调方法 onConnected()、onDisConnected() 和 onConnectionFailed() 中所做的事情不同吗?如果不是,它们与 servicesConnected() 有何不同?
- 最后我只是不明白 onActivityResult() 的用途是什么,我们到底想在这里做什么?
请原谅我的无知。我对 Android 编程完全陌生,正在努力学习清晰而合理的概念。请在我出错或误解的地方纠正我。我尝试浏览 Vogella 资源,但找不到太多帮助。任何解释细节的好资源都会使我的上述概念变得清晰,这将是很大的帮助。