有没有办法在Android 2.1&amp ;;上以编程方式启用GPS以上?

时间:2011-06-02 06:03:00

标签: android gps

我一直在看到不同的帖子,无法以编程方式启用GPS How do I find out if the GPS of an Android device is enabled

this应用可在禁用时启用GPS。任何人都可以帮助我。

谢谢, Prateek

3 个答案:

答案 0 :(得分:3)

不,你不能。但是您可以提示用户启用它。这是代码。

private void buildAlertMessageNoGps() {
    final AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage(
            "Your GPS seems to be disabled, do you want to enable it?")
            .setCancelable(false).setPositiveButton("Yes",
                    new DialogInterface.OnClickListener() {
                        public void onClick(
                                @SuppressWarnings("unused") final DialogInterface dialog,
                                @SuppressWarnings("unused") final int id) {
                            Intent intent = new Intent(
                                    Settings.ACTION_LOCATION_SOURCE_SETTINGS);
                            startActivity(intent);
                        }
                    }).setNegativeButton("No",
                    new DialogInterface.OnClickListener() {
                        public void onClick(final DialogInterface dialog,
                                @SuppressWarnings("unused") final int id) {
                            dialog.cancel();
                        }
                    });
    final AlertDialog alert = builder.create();
    alert.show();
}

答案 1 :(得分:0)

如果文档说不能以编程方式设置,我建议你不要这样做。文档说的原因有很多。如果有人能够做到这一点(以编程方式启用GPS),则意味着他/她做了一些没有记录的事情。

激活GPS需要用户的许可。如果您的应用程序能够在不通知用户的情况下激活GPS(此外,请求用户许可),则可能违反隐私政策。

答案 2 :(得分:0)

是的,这可以达到2.2(sdk 8)。

private void turnGPSOn(){
String provider = Settings.Secure.getString(getContentResolver(),Settings.Secure.LOCATION_PROVIDERS_ALLOWED);

if(!provider.contains("gps")){ //if gps is disabled
    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);
}
}