このエントリーをはてなブックマークに追加

2010年4月8日木曜日

Android Intent to show Location Settings View

[In English]
LocationManager is used in Android to get device location and show the address.
But if location setting is disabled on the device settings, Provider will be NULL.


final LocationManager locationManager = (LocationManager)getSystemService(LOCATION_SERVICE);
final Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
final LocationManager locationManager = (LocationManager)getSystemService(LOCATION_SERVICE);
final String provider = mLocationManager.getBestProvider(criteria, true);


In the case of the above sample, it is okay only to notify the user with Dialog, but I think it is better to move to Location Settings View because our applications can call the other applications using Intent on Android.


final Intent i = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(i);


Like this if you use Intent, you will not need to implement all function you want to your applications.
I'll continue to write blogs about Intent of Camera, Gallery and so on.



[In Japanese]
Androidアプリで位置情報を取得して、住所などを表示させる場合には、LocationManagerを使用します。
ただ、端末の設定で位置情報の送信を許可していないとProviderとして、nullが返されます。


final LocationManager locationManager = (LocationManager)getSystemService(LOCATION_SERVICE);
final Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
final LocationManager locationManager = (LocationManager)getSystemService(LOCATION_SERVICE);
final String provider = mLocationManager.getBestProvider(criteria, true);


nullが返された場合に、Dialogなどでユーザに通知するだけでもよいのですが、せっかくAndroidではIntentをつかって、他のアプリを呼び出せるので位置情報の設定画面へ遷移する方がよいと思います。


final Intent i = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(i);


このようにIntentを利用することで、他のアプリを呼び出せ、自分のアプリで全て実装する必要がなくなります。
今後もカメラやギャラリーなどの連携についてブログで紹介したいと思います。

0 件のコメント:

コメントを投稿