緯度と経度が表示されているときはいつでも特定のエラーが表示されます0,0私は物理的には効果が出るように場所を変更しましたが、 、0 ??ここで緯度と経度を取得すると常に0,0 uisng GPS
ここに私のmainacticityクラスのコード
public class MainActivity extends AppCompatActivity {
Thread t;
ConnectivityManager connectivityManager;
NetworkInfo activeNetworkInfo;
SaveDataOffline saveoffline;
SaveDataOnline saveonline;
GPSTracker loc;
TelephonyManager telephonyManager;
String x;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
loc = new GPSTracker(this);
t = new Thread(new Runnable() {
@Override
public void run() {
if(loc.isupdate==true) {
SaveData();
loc.isupdate = false;
}
}
});
}
public void SaveData(){
if(loc.location!=null){
connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
boolean isConnected = activeNetworkInfo != null &&
activeNetworkInfo.isConnectedOrConnecting();
telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
if(!isConnected){
//notonline
Toast.makeText(this,"Offline",Toast.LENGTH_LONG).show();
saveoffline = new SaveDataOffline(this);
saveoffline.insertData(String.valueOf(loc.getLat()),String.valueOf(loc.getLng()),String.valueOf(telephonyManager.getDeviceId()));
}
else{
//online
Toast.makeText(this,"Online",Toast.LENGTH_LONG).show();
saveonline = (SaveDataOnline) new SaveDataOnline(this,String.valueOf(loc.getLat()),String.valueOf(loc.getLng()),String.valueOf(telephonyManager.getDeviceId())).execute();
}
// \n is for new line
}else{
// can't get location
// GPS or Network is not enabled
// Ask user to enable GPS/network in settings
// loc.showSettingsAlert();
}
}
}
であるここに私のGPSTRackerクラス
public class GPSTracker extends Thread implements LocationListener {
Context context;
LocationManager locationManager;
String provider;
String lat;
public String getLng() {
return lng;
}
public String getLat() {
return lat;
}
String lng;
Location location;
boolean isupdate;
public GPSTracker(Context context){
this.context = context;
isupdate = false;
new Thread(new Runnable() {
@Override
public void run() {
check();
}
});
}
void check(){
// Get the location manage
locationManager = (LocationManager) getActivity().getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
provider = locationManager.getBestProvider(criteria, false);
location = locationManager.getLastKnownLocation(provider);
// Initialize the location fields
if (location != null) {
onLocationChanged(location);
isupdate = true;
}
}
@Override
public void onLocationChanged(Location location) {
this.lat = String.valueOf(location.getLatitude());
this.lng = String.valueOf(location.getLongitude());
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
public Context getActivity() {
return context;
}
}
するためのコードでGPSTrackerが壊れて
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />