コードを使用して 30 秒の間隔と 30 メートルの距離の後に mp3 サウンドを再生しましたが、モバイルがスリープ状態になった後は再生されず、5 マイル以上移動しました。
上記のコードを機能させる方法は?助けてください。
前もって感謝します。
アドオン クエリがありました: onLocationChanged メソッドは私の最後の場所を知っていますか? つまり、このステートメントを実行した場合:
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 30, 30000, new MyLocationListener());
mp3 ファイルは 30 秒間隔ごとに 30 mts の距離だけ実行されますか? または、次のように ScheduledExecutorService 内でステートメントを実行する必要がありますか?
ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
executor.scheduleWithFixedDelay(new Runnable(){
public void run() {
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 30, 30000, new MyLocationListener());
}
}, 0, 600, TimeUnit.SECONDS);
合計コード:
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 30, 30000, new MyLocationListener());
private class MyLocationListener implements LocationListener {
public void onLocationChanged(Location location) {
///Audio file which plays everytime the above condition is met
mp3.start();
);
Toast.makeText(AndroidGPSSampleActivity.this, message, Toast.LENGTH_LONG).show();
}
public void onStatusChanged(String s, int i, Bundle b) {
Toast.makeText(AndroidGPSSampleActivity.this, "Provider status changed",Toast.LENGTH_LONG).show();
}
public void onProviderDisabled(String s) {
Toast.makeText(AndroidGPSSampleActivity.this,"Provider disabled by the user. GPS turned off",Toast.LENGTH_LONG).show();
}
public void onProviderEnabled(String s) {
System.out.println("==onProviderEnabled=" + s);
Toast.makeText(AndroidGPSSampleActivity.this, "Provider enabled by the user. GPS turned on",Toast.LENGTH_LONG).show();
}
}