나는 항상 백그라운드에서 실행되며 gps 좌표를 sms를 통해 일정 시간 후에 전송하는 앱에 문제가 있습니다. 전화가 다시 시작되면 앱이 다시 시작되어야합니다. 런처 활동없이 자동으로 시작하십시오. 갑자기 gps가 활성화되었을 때 내 앱이 안드로이드 kitkat에서 위치 정보를 얻고 GPS가 비활성화되면 젤리 빈에서 작동한다는 문제가 발생합니다. 나는 정말로 그것에 대해 혼란 스럽다. 친절하게 내가 어디에 잘못되었는지 말해 주시고 어떻게 고칠 지 제안 해주십시오.wifi로 위치가 있지만 GPS가없는 경우
필요한 모든 권한이 매니페스트 파일에 추가됩니다
LocationListener locationListener = new LocationListener() {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
public void onProviderDisabled(String provider) {
}
@Override
public void onLocationChanged(Location location) {
}
};
}
내 수신기 클래스
public class AlarmReceiver extends BroadcastReceiver{
long time = 5* 1000;
long distance = 10;
@Override
public void onReceive(final Context context, Intent intent) {
System.out.println("alarm receiver....");
Intent service = new Intent(context, MyService.class);
context.startService(service);
//Start App On Boot Start Up
if ("android.intent.action.BOOT_COMPLETED".equals(intent.getAction())) {
Intent App = new Intent(context, MainActivity.class);
App.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(App);
}
LocationManager locationManager = (LocationManager)context
.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String provider = locationManager.getBestProvider(criteria, true);
locationManager.requestLocationUpdates(provider, time, distance, locationListener);
Location location = locationManager.getLastKnownLocation(provider);
TelephonyManager tm = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
String device_id = tm.getDeviceId(); // returns IMEI number
String phoneNo = "+923333333";
String Text = "Latitude = " + location.getLatitude() +" Longitude = " + location.getLongitude() + " Device Id: " + device_id;
try {
SmsManager smsManager = SmsManager.getDefault();
smsManager.sendTextMessage(phoneNo, null, Text, null, null);
Log.i("Send SMS", "");
Toast.makeText(context, "message sent", Toast.LENGTH_SHORT).show();
} catch (Exception e) {
Toast.makeText(context, "SMS faild, please try again.",
Toast.LENGTH_LONG).show();
e.printStackTrace();
}
this.abortBroadcast();
}.
덕분에 나는 GPS로 위치를 확인하고 싶습니다. 네트워크 또는 무선 랜을 사용할 수 있는지 여부는 신경 쓰지 않습니다. –
이 방법을 사용하면 interent에 의해 getlocation을 수행 할 수 있습니다. 누군가가 도울 것이며, 그것을 확인하고 대답을 받아 들일 수 있기를 바랍니다. – Saveen