-1

私はAndroid開発に非常に慣れていません。ですから、この繰り返しの質問をお許しください。私はこれについて多くの解決策を試しましたが、どれもうまく機能していないようです...それらはすべてエミュレーターと電話でクラッシュします。

私はアプリに取り組んでおり、自分の GPS 位置情報を取得して、'big' という TextView を位置の値に設定したいだけです。

コードはこちら。(私は自分のコードに import ステートメントとすべてを持っています..私はそれらをコピーしませんでした

GPSActivity //開始するアクティビティ。テキストビュー R.id.big は存在します

public class GPSActivity extends Activity{

private LocationManager       manager = null;
private MyLocationListener    listener;
private TextView             textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);


    listener = new MyLocationListener(textView);
    textView = (TextView) findViewById(R.id.big);

    manager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

    listener = new MyLocationListener(textView);

    manager.requestLocationUpdates(LocationManager
            .GPS_PROVIDER, 5000, 10,listener);

    }
} 

TextView を変更する独自の LocationListener を実装しました...本当にこれが許可されているかどうかわかりません....

public class MyLocationListener implements LocationListener
{
TextView textView;

public MyLocationListener(TextView textView)
{
    this.textView = textView;
}

@Override
public void onLocationChanged(Location location) {
    this.textView.setText(location.toString());
}

@Override
public void onStatusChanged(String s, int i, Bundle bundle) {

}

@Override
public void onProviderEnabled(String s) {

}

@Override
public void onProviderDisabled(String s) {

}
}

最後に私のマニフェストファイル。必要な権限を含めるようにしました。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mytestapp"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="12"
    android:targetSdkVersion="16" />
<application

    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar" >
    <activity
        android:name="com.mytestapp.GPSActivity"
        android:permission="ACCESS_FINE_LOCATION"
        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>

GPSActivityを呼び出すと問題が発生しますrequestLocationUpdates()。この行をコードに残すと、アプリがクラッシュします。コメントアウトすると、TextView の 'big' が期待どおりに表示されます。

LocationListener編集:他の多くの人がSOで行うのを見たように、内部クラスとしてを作成しようとしました...そして同じ結果が得られました(アプリのクラッシュ)

4

3 に答える 3

0

ACCESS_FINE_LOCATION パーミッションに加えて、ACCESS_GPS を追加してみてください

そして、彼らはこのように見えるはずです...

 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
 <uses-permission android:name="android.permission.ACCESS_GPS" />
 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
于 2013-08-01T22:48:37.783 に答える
0

追加

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

manifest.xml ファイルに追加します。

于 2013-08-01T22:49:13.363 に答える