Я пытаюсь использовать макет местоположения DDMS с очень простым Log.i()
вызовом в функциях всех атрибутов LocationListener. Когда я запускаю программу, я получаю сообщение Log.i()
для onStatusChanged()
в моем LogCat, поэтому я думаю, что я правильно зарегистрировал слушателя. Но когда я помещаю местоположение в виртуальную машину с помощью меню DDMS в Eclipse, я ничего не получаю. Без изменений в LogCat, Console или внутри виртуальной машины. Как будто ничего не случилось вообще.
Как я могу даже начать обнаруживать проблему?
Вот код моего простого GPS-регистратора событий:
public class gpsActivity extends Activity {
private static final String TAG="gpsActivity";
private static TextView label;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
label = (TextView) findViewById(R.id.label);
LocationManager manager = (LocationManager) this
.getSystemService(LOCATION_SERVICE);
LocationListener listener = new LocationListener() {
@Override
public void onStatusChanged(String arg0, int arg1, Bundle arg2) {
Log.i(TAG, "onStatusChanged: "+arg0);
}
@Override
public void onProviderEnabled(String arg0) {
Log.i(TAG, "onProviderEnabled: "+arg0);
}
@Override
public void onProviderDisabled(String arg0) {
Log.i(TAG, "onProviderDisabled: "+arg0);
}
@Override
public void onLocationChanged(Location location) {
Log.i(TAG, "onLocationChanged");
}
};
manager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 2, 0,
listener);
setContentView(R.layout.main);
}
}
и вот манифест:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mypackage.example.gps"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="3" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".gpsActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Также в качестве еще одного примечания, я использую немецкую Windows XP и обнаружил, что есть проблемы с пакетами GPS, потому что в немецкой системе числовой формат для 1/2 не 0,5, а 0,5, что приводит к ошибкам в грамматике парсера GPS. Но также изменение формата номера моей системы на английский (США) не изменило того, что я не получаю никаких сообщений, исключений или результатов вообще.