diff options
author | Fred Chung <fchung@google.com> | 2012-04-16 00:35:23 -0700 |
---|---|---|
committer | Fred Chung <fchung@google.com> | 2012-04-16 23:26:40 -0700 |
commit | 16266ff7117a5cf65b9fcc52d72a4ba5f6db09c6 (patch) | |
tree | 9fe98972deb3e16d11e22363c10287a5c4e682cc /samples/training | |
parent | cbece7322a7c74b74f2fc43cdff9bd9d7ab38632 (diff) | |
download | android_development-16266ff7117a5cf65b9fcc52d72a4ba5f6db09c6.tar.gz android_development-16266ff7117a5cf65b9fcc52d72a4ba5f6db09c6.tar.bz2 android_development-16266ff7117a5cf65b9fcc52d72a4ba5f6db09c6.zip |
Updated "Making your App Location Aware" class to include information on location provider enable check.
Change-Id: I97e0a6b02bccbfbdc5697953d2d8b63cb6089370
Diffstat (limited to 'samples/training')
12 files changed, 58 insertions, 4 deletions
diff --git a/samples/training/location-aware/libs/android-support-v4.jar b/samples/training/location-aware/libs/android-support-v4.jar Binary files differnew file mode 100644 index 000000000..99e063b33 --- /dev/null +++ b/samples/training/location-aware/libs/android-support-v4.jar diff --git a/samples/training/location-aware/res/drawable-hdpi/button_default.9.png b/samples/training/location-aware/res/drawable-hdpi/button_default.9.png Binary files differindex f19682efb..ced6dc804 100644 --- a/samples/training/location-aware/res/drawable-hdpi/button_default.9.png +++ b/samples/training/location-aware/res/drawable-hdpi/button_default.9.png diff --git a/samples/training/location-aware/res/drawable-hdpi/button_on.9.png b/samples/training/location-aware/res/drawable-hdpi/button_on.9.png Binary files differindex 0efa25cc5..119239607 100644 --- a/samples/training/location-aware/res/drawable-hdpi/button_on.9.png +++ b/samples/training/location-aware/res/drawable-hdpi/button_on.9.png diff --git a/samples/training/location-aware/res/drawable-hdpi/button_pressed.9.png b/samples/training/location-aware/res/drawable-hdpi/button_pressed.9.png Binary files differindex 7ce743c0f..240ef81cd 100644 --- a/samples/training/location-aware/res/drawable-hdpi/button_pressed.9.png +++ b/samples/training/location-aware/res/drawable-hdpi/button_pressed.9.png diff --git a/samples/training/location-aware/res/drawable-mdpi/button_default.png b/samples/training/location-aware/res/drawable-mdpi/button_default.png Binary files differnew file mode 100644 index 000000000..ac6e834b0 --- /dev/null +++ b/samples/training/location-aware/res/drawable-mdpi/button_default.png diff --git a/samples/training/location-aware/res/drawable-mdpi/button_on.9.png b/samples/training/location-aware/res/drawable-mdpi/button_on.9.png Binary files differindex edc31c620..1523ad552 100644 --- a/samples/training/location-aware/res/drawable-mdpi/button_on.9.png +++ b/samples/training/location-aware/res/drawable-mdpi/button_on.9.png diff --git a/samples/training/location-aware/res/drawable-mdpi/button_pressed.9.png b/samples/training/location-aware/res/drawable-mdpi/button_pressed.9.png Binary files differindex 7e818ee86..cc1f46c45 100644 --- a/samples/training/location-aware/res/drawable-mdpi/button_pressed.9.png +++ b/samples/training/location-aware/res/drawable-mdpi/button_pressed.9.png diff --git a/samples/training/location-aware/res/drawable-xhdpi/button_default.9.png b/samples/training/location-aware/res/drawable-xhdpi/button_default.9.png Binary files differindex 800dd0047..f19682efb 100644 --- a/samples/training/location-aware/res/drawable-xhdpi/button_default.9.png +++ b/samples/training/location-aware/res/drawable-xhdpi/button_default.9.png diff --git a/samples/training/location-aware/res/drawable-xhdpi/button_on.9.png b/samples/training/location-aware/res/drawable-xhdpi/button_on.9.png Binary files differindex cec21b430..0efa25cc5 100644 --- a/samples/training/location-aware/res/drawable-xhdpi/button_on.9.png +++ b/samples/training/location-aware/res/drawable-xhdpi/button_on.9.png diff --git a/samples/training/location-aware/res/drawable-xhdpi/button_pressed.9.png b/samples/training/location-aware/res/drawable-xhdpi/button_pressed.9.png Binary files differindex 15375d5f0..7ce743c0f 100644 --- a/samples/training/location-aware/res/drawable-xhdpi/button_pressed.9.png +++ b/samples/training/location-aware/res/drawable-xhdpi/button_pressed.9.png diff --git a/samples/training/location-aware/res/values/strings.xml b/samples/training/location-aware/res/values/strings.xml index 4d6a87f61..cad1046f3 100644 --- a/samples/training/location-aware/res/values/strings.xml +++ b/samples/training/location-aware/res/values/strings.xml @@ -17,10 +17,12 @@ <resources> <string name="app_name">Android Training: Location Update</string> <string name="address">Address:</string> + <string name="enable_gps">Enable GPS</string> + <string name="enable_gps_dialog">GPS provider not enabled. Would you like to enable it?</string> <string name="latlng">Lat/Long:</string> <string name="unknown">--Unknown--</string> <string name="not_support_gps">GPS provider not supported</string> <string name="not_support_network">Network provider not supported</string> - <string name="use_fine_provider">Use fine provider</string> - <string name="use_both_providers">Use both providers</string> + <string name="use_fine_provider">Fine-grain provider</string> + <string name="use_both_providers">Both providers</string> </resources> diff --git a/samples/training/location-aware/src/com/example/android/location/LocationActivity.java b/samples/training/location-aware/src/com/example/android/location/LocationActivity.java index 93f4ce123..117c0cf08 100644 --- a/samples/training/location-aware/src/com/example/android/location/LocationActivity.java +++ b/samples/training/location-aware/src/com/example/android/location/LocationActivity.java @@ -17,8 +17,11 @@ package com.example.android.location; import android.annotation.SuppressLint; -import android.app.Activity; +import android.app.AlertDialog; +import android.app.Dialog; import android.content.Context; +import android.content.DialogInterface; +import android.content.Intent; import android.location.Address; import android.location.Geocoder; import android.location.Location; @@ -29,6 +32,9 @@ import android.os.Build; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.provider.Settings; +import android.support.v4.app.DialogFragment; +import android.support.v4.app.FragmentActivity; import android.view.View; import android.widget.Button; import android.widget.TextView; @@ -38,7 +44,7 @@ import java.io.IOException; import java.util.List; import java.util.Locale; -public class LocationActivity extends Activity { +public class LocationActivity extends FragmentActivity { private TextView mLatLng; private TextView mAddress; private Button mFineProviderButton; @@ -122,6 +128,32 @@ public class LocationActivity extends Activity { setup(); } + @Override + protected void onStart() { + super.onStart(); + + // Check if the GPS setting is currently enabled on the device. + // This verification should be done during onStart() because the system calls this method + // when the user returns to the activity, which ensures the desired location provider is + // enabled each time the activity resumes from the stopped state. + LocationManager locationManager = + (LocationManager) getSystemService(Context.LOCATION_SERVICE); + final boolean gpsEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); + + if (!gpsEnabled) { + // Build an alert dialog here that requests that the user enable + // the location services, then when the user clicks the "OK" button, + // call enableLocationSettings() + new EnableGpsDialogFragment().show(getSupportFragmentManager(), "enableGpsDialog"); + } + } + + // Method to launch Settings + private void enableLocationSettings() { + Intent settingsIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); + startActivity(settingsIntent); + } + // Stop receiving location updates whenever the Activity becomes invisible. @Override protected void onStop() { @@ -338,4 +370,24 @@ public class LocationActivity extends Activity { return null; } } + + /** + * Dialog to prompt users to enable GPS on the device. + */ + private class EnableGpsDialogFragment extends DialogFragment { + + @Override + public Dialog onCreateDialog(Bundle savedInstanceState) { + return new AlertDialog.Builder(getActivity()) + .setTitle(R.string.enable_gps) + .setMessage(R.string.enable_gps_dialog) + .setPositiveButton(R.string.enable_gps, new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + enableLocationSettings(); + } + }) + .create(); + } + } } |