綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[求助] 手機GPS程式問題

[複製連結] 查看: 1517|回覆: 3|好評: 0
跳轉到指定樓層
樓主
w7946138 | 收聽TA | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
發表於 2014-3-18 15:10

馬上加入Android 台灣中文網,立即免費下載應用遊戲。

您需要 登錄 才可以下載或查看,沒有帳號?註冊

x
我用Eclipse看程式碼都沒有驚嘆號跟X
但是都無法正常開啟 開啟就會馬上停止


這是我的程式碼

package com.example.gps123;

import android.app.Activity;
import android.location.Location;  //可以在指定的時間提供location
import android.location.LocationListener; //為自訂億的class android library沒有這個class
import android.location.LocationManager; //提供可以存取系統location的service
import android.os.Bundle;  //傳送參數會使用
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast; //快顯訊息


import android.content.Context;


public class MainActivity extends Activity {
  
    private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1;
    //設定超過一個距離(尺)他就會做更新location的動作
    private static final long MINIMUM_TIME_BETWEEN_UPDATES = 1000;
    //設定超過一個時間(毫秒)他就會做更新location的動作
  
    protected LocationManager locationManager;
  
    protected Button retrieveLocationButton;
  
    @Override
    public void onCreate(Bundle savedInstanceState) {
      
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        retrieveLocationButton = (Button)findViewById(R.id.button1);
         
        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        //get location service
         
        //requestLocationUpdates(long minTime, float minDistance, Criteria criteria, PendingIntent intent)
        //Criteria: 訂定尋找location provider的標準
        //PendingIntent: 處理即將發生的事件
        //PendingIntent與Intent的差異:Intent會隨著Activiy的消失而消失,PendingIntent不會
        locationManager.requestLocationUpdates(
            LocationManager.GPS_PROVIDER,  //Name of the GPS provider
            MINIMUM_TIME_BETWEEN_UPDATES,
            MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,
            new MyLocationListener()
        );
         
retrieveLocationButton.setOnClickListener(new OnClickListener() {
     public void onClick(View v) {
         showCurrentLocation();
     }
});        
         
    }   

protected void showCurrentLocation() {

     Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
     //取得最後得知道provider資訊
     if (location != null) {
         String message = String.format(
                    "Current Location
Longitude: %1$s
Latitude: %2$s",
      location.getLongitude(), location.getLatitude());
  Toast.makeText(MainActivity.this, message,Toast.LENGTH_LONG).show();
     }

}   

private class MyLocationListener implements LocationListener {

     public void onLocationChanged(Location location) {
         String message = String.format(
             "New Location
Longitude: %1$s
Latitude: %2$s",
      location.getLongitude(), location.getLatitude());
      //將想要印出的資料用string.format的方法存入string
      Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
      //Toast.LENGTH_LONG:以最長的時間週期呈現文字
     }

     public void onStatusChanged(String s, int i, Bundle b) {
         Toast.makeText(MainActivity.this, "Provider status changed",
      Toast.LENGTH_LONG).show();
         //當provider的時候會顯示
     }

     public void onProviderDisabled(String s) {
  Toast.makeText(MainActivity.this,
                    "Provider disabled by the user. GPS turned off",
      Toast.LENGTH_LONG).show();
  //當device的GPS沒有開啟的時候他會顯示
     }

     public void onProviderEnabled(String s) {
  Toast.makeText(MainActivity.this,
      "Provider enabled by the user. GPS turned on",
      Toast.LENGTH_LONG).show();
  //當device將GPS打開的時候他會顯示
     }

}
     
}



AndroidManifest.xml 中的設定

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.gps123"
    android:versionCode="1"
    android:versionName="1.0" >

  <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="15" />
  
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
         <uses-library android:name="com.google.android.maps"/>
        <meta-data android:name="com.google.android.maps.v3.API_KEY" android:value="AIzaSyApRB2VEXrF9mZUgDDTMWcDfJDyKlBHJME"/>
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
      
    </application>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
//允許一個程式存取精確位置
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
//允許程式建立模組使用
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
//允許程式存取CellID或WiFi熱點來取得粗略的位置
   


</manifest>
「用Android 就來APK.TW」,快來加入粉絲吧!
Android 台灣中文網(APK.TW)
收藏收藏 分享分享 分享專題
用Android 就來Android 台灣中文網(https://apk.tw)
回覆

使用道具 舉報

沙發
xjxuvup | 收聽TA | 只看該作者
發表於 2014-3-19 09:21
補上log
這樣要查問題不好查
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

板凳
 樓主| w7946138 | 收聽TA | 只看該作者
發表於 2014-3-19 09:56
請問一下 你說的是最後RUN的錯誤訊息嗎 ?
還是方便提供範例參考 因為我這些也是參考其他人的範例
只是我對手機程式不熟 但又一定要有GPS功能
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

地板
 樓主| w7946138 | 收聽TA | 只看該作者
發表於 2014-3-21 16:41
目前已跑出網格
再做後續的修改了 謝謝
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 註冊

本版積分規則