PDA

View Full Version : گرفتن موقعیت از gps



parniaznet
جمعه 21 فروردین 1394, 23:23 عصر
سلام
من خیلی در این مورد بین سایت های خارجی گشتم اما هیچ کدوم از پروژه ها روی گوشی من کار نمیکرد و موقعیت نمیداد
مثل این پروژه ها :

http://www.androidhive.info/2012/07/android-gps-location-manager-tutorial/

http://androidexample.com/GPS_Basic__-__Android_Example/index.php?view=article_discription&aid=68&aaid=93

http://www.vogella.com/tutorials/AndroidLocationAPI/article.html


کسی رو این زمینه کار کرده؟ یه نمونه پروژه ای که داخل ایران و روی همه گوشی ها کار کنه اگه دارید بزارید ممنون میشم.

ali_khodayar
شنبه 22 فروردین 1394, 09:06 صبح
این کد دریافت اطلاعات از gps.(هرچند قانون اینجا رفع اشکاله و نه قرار دادن کد کامل اما من کد رو گذاشتم.)
شما خودتون ظاهرش رو از روی کد طراحی کنید.






import android.app.Activity;


import android.content.Context;


import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;


import android.location.Criteria;


import android.location.Location;


import android.location.LocationListener;


import android.location.LocationManager;


import android.os.Bundle;


import android.provider.Settings;


import android.view.View;


import android.view.View.OnClickListener;


import android.widget.Button;


import android.widget.CheckBox;


import android.widget.TextView;


import android.widget.Toast;


import android.widget.EditText;





public class MainActivity extends Activity {


private TextView latitude;


private TextView longitude;


private TextView choice;


private CheckBox fineAcc;


private Button choose;

private Button saveDB;


private TextView provText;


private LocationManager locationManager;


private String provider;


private MyLocationListener mylistener;


private Criteria criteria;

private Button showInfo;

private EditText showLat;

private EditText showLong;
private EditText myLocation;


/** Called when the activity is first created. */





@Override


public void onCreate(Bundle savedInstanceState) {


super.onCreate(savedInstanceState);


setContentView(R.layout.activity_main);


latitude = (TextView) findViewById(R.id.lat);


longitude = (TextView) findViewById(R.id.lon);


provText = (TextView) findViewById(R.id.prov);


choice = (TextView) findViewById(R.id.choice);


fineAcc = (CheckBox) findViewById(R.id.fineAccuracy);


choose = (Button) findViewById(R.id.chooseRadio);

saveDB=(Button)findViewById(R.id.SaveDB);

showInfo=(Button)findViewById(R.id.showInfo);
showLat=(EditText) findViewById(R.id.showLat);
showLong=(EditText)findViewById(R.id.showLong);
myLocation=(EditText)findViewById(R.id.Mylocation) ;


// Get the location manager


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


// Define the criteria how to select the location provider


criteria = new Criteria();


criteria.setAccuracy(Criteria.ACCURACY_COARSE); //default





// user defines the criteria


choose.setOnClickListener(new OnClickListener() {


@Override


public void onClick(View v) {


// TODO Auto-generated method stub


if(fineAcc.isChecked()){


criteria.setAccuracy(Criteria.ACCURACY_FINE);


choice.setText("fine accuracy selected");


}else {


criteria.setAccuracy(Criteria.ACCURACY_COARSE);


choice.setText("coarse accuracy selected");


}


}


});

//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Save To DB &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
saveDB.setOnClickListener(new OnClickListener() {


@Override


public void onClick(View v) {

SQLiteDatabase database = openOrCreateDatabase("GPSDB", MODE_PRIVATE, null);
database.execSQL("create table if not exists myGPS (latitude varchar(20) , longtitude varchar(20), location varchar(50))");
database.execSQL("insert into mygps values ('"+latitude.getText() +"','"+ longitude.getText() +"','"+ myLocation.getText()+"') " );
database.close();
Toast.makeText(getApplicationContext(),"data Inserted",Toast.LENGTH_LONG).show();

myLocation.setText("");
}


});


//&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Show Info &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

showInfo.setOnClickListener(new OnClickListener(){

@Override


public void onClick(View v) {

SQLiteDatabase database = openOrCreateDatabase("GPSDB", MODE_PRIVATE, null);

Cursor cursor= database.rawQuery(" select * from myGPS ;", null);
while(cursor.moveToNext()){

String a=cursor.getString(cursor.getColumnIndex("latitude"));
String b=cursor.getString(cursor.getColumnIndex("longtitude"));
String c=cursor.getString(cursor.getColumnIndex("location"));


showLat.setText(a);
showLong.setText(b);
myLocation.setText(c);
database.close();
}

}
});





criteria.setCostAllowed(false);


// get the best provider depending on the criteria


provider = locationManager.getBestProvider(criteria, false);





// the last known location of this provider


Location location = locationManager.getLastKnownLocation(provider);





mylistener = new MyLocationListener();



if (location != null) {


mylistener.onLocationChanged(location);


} else {


// leads to the settings because there is no last known location


Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);


startActivity(intent);


}


// location updates: at least 1 meter and 200millsecs change


locationManager.requestLocationUpdates(provider, 200, 1, mylistener);


}





private class MyLocationListener implements LocationListener {





@Override


public void onLocationChanged(Location location) {


// Initialize the location fields


latitude.setText("Latitude: "+String.valueOf(location.getLatitude()));


longitude.setText("Longitude: "+String.valueOf(location.getLongitude()));


provText.setText(provider + " provider has been selected.");





Toast.makeText(MainActivity.this, "Location changed!",


Toast.LENGTH_SHORT).show();


}





@Override


public void onStatusChanged(String provider, int status, Bundle extras) {


Toast.makeText(MainActivity.this, provider + "'s status changed to "+status +"!",


Toast.LENGTH_SHORT).show();


}





@Override


public void onProviderEnabled(String provider) {


Toast.makeText(MainActivity.this, "Provider " + provider + " enabled!",


Toast.LENGTH_SHORT).show();



}





@Override


public void onProviderDisabled(String provider) {


Toast.makeText(MainActivity.this, "Provider " + provider + " disabled!",


Toast.LENGTH_SHORT).show();


}


}


}





یکسری کد هم داره برای ذخیره در بانک که شما میتونید این کد ها رو نادیده بگیرید.

parniaznet
شنبه 22 فروردین 1394, 12:35 عصر
ممنون دوست عزیز اما اینی که گذاشتید لایوتش خیلی ایتم های زیادی داه من دقیقا متوجه نشدم میشه یه آموزش بزارید که بقیه هم بتونن استفاده کنند؟

skkhossein
یک شنبه 23 فروردین 1394, 02:54 صبح
یه فیلم آموزشی در همین رابطه از دوست خوبمون پوریا انجمنی هست از سایت nikandroid
فصل پنجم

موفق باشید