gpt4 book ai didi

Android 如何在使用 requestLocationUpdates() 时从 Intent 中获取信息

转载 作者:行者123 更新时间:2023-11-29 00:11:06 25 4
gpt4 key购买 nike

我正在尝试在后台获取我的位置,我读到您需要为此准备一个 Pending Intent。

我的位置接收器似乎确实按照我在位置请求中指定的每 10 秒接收一次 Intent。

我的问题是我在位置接收器中的位置始终为空...

感谢您的帮助:)

这是我的代码:

   /**
* Runs when a GoogleApiClient object successfully connects.
*/
@Override
public void onConnected(Bundle connectionHint) {

Intent mIntent = new Intent(context, LocationReceiver.class);
PendingIntent mPendingIntent = PendingIntent.getBroadcast(context, 42, mIntent, PendingIntent.FLAG_CANCEL_CURRENT);

LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient, mLocationRequest, mPendingIntent);
}

这是我的 xml 文件的一部分:

        <receiver
android:name=".LocationReceiver"
android:enabled="true"
android:exported="true" >
<intent-filter>
<action android:name="com.myapp.databerries.LOCATION_READY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>

这是我的 LocationReciever 文件:

public class LocationReceiver extends BroadcastReceiver {
public LocationReceiver() {
}

@Override
public void onReceive(Context context, Intent intent) {

Bundle b = intent.getExtras();
Location loc = (Location)b.get(android.location.LocationManager.KEY_LOCATION_CHANGED);
if (loc != null)
Log.d("hello", "location = " + loc.toString());
else
Log.d("hello", "location = null");
}
}

最佳答案

根据 requestLocationUpdates() documentation,您使用了错误的常量 - 而不是 LocationManager.KEY_LOCATION_CHANGED(解析为 “location”) , 你应该使用 FusedLocationProviderApi.KEY_LOCATION_CHANGED (解析为 "com.google.android.location.LOCATION")

关于Android 如何在使用 requestLocationUpdates() 时从 Intent 中获取信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30059310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com