Tôi đang cố gắng sử dụng yêu cầu LocationManager của AndroidLocationUpdate. Mọi thứ đều hoạt động cho đến khi tôi thử trích xuất đối tượng vị trí thực tế trong bộ thu phát sóng của tôi. Tôi có cần xác định cụ thể "tính năng bổ sung" cho mục đích tùy chỉnh của mình để Android LocationManager trước khi tôi chuyển nó tới requestLocationUpdates để biết cách thêm nó vào mục đích hay nó sẽ tạo gói phụ cho dù nó vượt qua ý định của người phát sóng?Android: Cách nhận thông tin vị trí từ các tính năng bổ sung của gói ý định khi sử dụng LocationManager.requestLocationUpdates()
Mã của tôi trông như thế này:
Intent intent = new Intent("com.myapp.swarm.LOCATION_READY");
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),
0, intent, 0);
//Register for broadcast intents
int minTime = 5000;
int minDistance = 0;
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, minTime,
minDistance, pendingIntent);
Tôi có một máy thu phát sóng được xác định trong bản tuyên ngôn như:
<receiver android:name=".LocationReceiver">
<intent-filter>
<action android:name="com.myapp.swarm.LOCATION_READY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
Và phát sóng nhận lớp như:
public class LocationReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//Do this when the system sends the intent
Bundle b = intent.getExtras();
Location loc = (Location)b.get("KEY_LOCATION_CHANGED");
Toast.makeText(context, loc.toString(), Toast.LENGTH_SHORT).show();
}
}
Đối tượng "loc" của tôi sắp hết.
hãy nhớ KIỂM TRA NULL - không phải tất cả những mục đích này đều chứa đối tượng 'Vị trí' –