【发布时间】:2017-03-05 01:35:54
【问题描述】:
我是service 的新手。我想打开我的 GPS 传感器 并获取 GPS 的 lat 和 long 坐标。我正在使用 Android M,我为我的应用提供了权限。但是,我无法启用并获得坐标。你能帮帮我吗?
代码:
//Enable gps
String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if(!provider.contains("gps")) {
new Handler(getMainLooper()).post(new Runnable() {
@Override
public void run() {
final Intent poke = new Intent();
poke.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");
poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
poke.setData(Uri.parse("3"));
sendBroadcast(poke);
}
});
}
【问题讨论】:
-
为什么不能启用gps?
-
为什么要使用处理程序、looper 和 runnable 来启动 Intent?
-
因为我在一个服务的 BroadcastReceiver 中。不使用 Handler,我得到了错误
-
您应该回答所有问题。特别是你应该告诉你的代码是做什么的。
-
对不起。我已经删除了runnable,它仍然有效。代码没有错误但GPS传感器无法启用。
标签: android service gps android-6.0-marshmallow