警报以启用gps和网络,位置

时间:2011-09-13 08:29:58

标签: android

我想测试gps是否已启用,如果是,则显示警告

            protected void createGpsDisabledAlert() {
    AlertDialog builder = new AlertDialog.Builder(this).create();
    builder.setMessage("Your GPS is disabled! Would you like to enable it?");

    builder.setButton("Enable GPS", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            showGpsOptions();
        }

    });
    builder.setButton2("Do nothing", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            return;
        }
    });

    builder.show();
}

private void showGpsOptions() {
    Intent gpsOptionsIntent = new Intent(
            android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS);
    startActivity(gpsOptionsIntent);

}

我做了调试,似乎一切正常,我没有错误,但警报没有出现,即使它在方法中消失

提前谢谢

2 个答案:

答案 0 :(得分:2)

我创建了一种非常好用的方法! 只需根据所需资源为每个活动配置onResume。此方法将提醒用户启用资源并提供资源设置的快捷方式。用户无法执行任何操作。

更新:http://code.google.com/p/android-resource-checker/

答案 1 :(得分:1)

检查此代码我添加了在Toast中启用或禁用GPS .......

import android.app.Activity;
import android.content.*;
import android.location.*;
import android.net.Uri;
import android.os.Bundle;
import android.view.Window;
import android.widget.*;

public class DirectionsWhereisparty extends Activity {
    double destin_lat = 0, destin_lng = 0;
    double current_lat = 0, current_lng = 0;
    boolean flag = true;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        LocationListener mlocListener = new MyLocationListener();
        mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0,
                mlocListener);
    }

    public void go(double c_lat, double c_lng, double d_lat, double d_lng) {

        Bundle b = getIntent().getExtras();

        if (b != null) {

            String lat = b.getString("lat");
            String lng = b.getString("lng");

            d_lat = Double.parseDouble(lat);
            d_lng = Double.parseDouble(lng);

            // System.out.println("d_lat " + d_lat);
            // System.out.println("d_lng " + d_lng);

            String Text = "My current location is: " + "Latitude = " + c_lat
                    + "Longitude = " + c_lng;

            Toast.makeText(getApplicationContext(), Text, Toast.LENGTH_SHORT)
                    .show();

            Intent intent = new Intent(android.content.Intent.ACTION_VIEW, Uri
                    .parse("http://maps.google.com/maps?saddr=" + c_lat
                            + "   ,  " + c_lng + "&daddr=" + d_lat + "   ,   "
                            + d_lng));
            startActivity(intent);
        }
    }

    public class MyLocationListener implements LocationListener

    {

        public void onLocationChanged(Location loc) {

            current_lat = loc.getLatitude();
            current_lng = loc.getLongitude();

            if (flag == true) {
                flag = false;
                go(current_lat, current_lng, destin_lat, destin_lng);
            }

        }

        public void onProviderDisabled(String provider) {
            Toast.makeText(getApplicationContext(), "Gps Disabled",
                    Toast.LENGTH_SHORT).show();

        }

        public void onProviderEnabled(String provider) {
            Toast.makeText(getApplicationContext(), "Gps Enabled",
                    Toast.LENGTH_SHORT).show();
        }

        public void onStatusChanged(String provider, int status, Bundle extras) {
            // TODO Auto-generated method stub

        }

    }

}