is there any way to turn on gps service through code?
There's a good example on HelloAndroid
Check for the GPS
LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000L,1.0f, this);
boolean isGPS = locationManager.isProviderEnabled (LocationManager.GPS_PROVIDER);
If isGPS is false open the settings
startActivityForResult(new Intent(android.provider.Settings.ACTION_LOCATION_SOURCE_SETTINGS), 0);
Don't forget to check the GPS is enabled when the user returns, they might not enable it.
No.
Turning on GPS is a user's choice. It would be unethical to force it.