1
私はNETWORK_PROVIDER
を使用して自分の位置を特定しようとしています。私のアプリケーション(Eclipseとエミュレータのエミュレータ上で)を実行すると、私は常にプロバイダを無効として検出します。プロバイダがAndroidでLocationListenerで無効にされている
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
// refresh button
this.b1 = (Button)findViewById(R.id.b1);
this.b1.setOnClickListener(this);
this.lm = (LocationManager)getSystemService(LOCATION_SERVICE);
String provider = LocationManager.NETWORK_PROVIDER;
Location location = this.lm.getLastKnownLocation(provider);
this.t1 = (TextView)findViewById(R.id.t1);
if (location != null)
this.t1.setText(location.toString());
else
if (lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER)==false)
this.t1.setText("Provider disabled");
else
this.t1.setText("No location, please wait");
int t = 5000;
int distance = 5;
lm.requestLocationUpdates(provider, t, distance, myLocationListener);
}
public void onClick(View view){
Location location = this.lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null)
this.t1.setText(location.toString());
else
this.t1.setText("Refreshed but no location");
}
私は、[設定]> [場所]> [無線ネットワークを使用中にオプションが有効になっている、チェックを。
編集:コードNickTで述べたように修正されたが、ボタン
私はそれが間違いだと思う。 – frayab
愚かな私。ありがとうございました!しかし、もう1つの問題は、ボタンを押したときに場所を取得しないということです。最初の場所を取得するには通常どのくらいの時間がかかりますか? –
それは信号の強さに依存するでしょう。おそらく、onLocationChanged()で場所を受け取ったときにテキストを設定した場合、その所要時間を知ることができます。 – NickT