Vorrei creare un'attività di StandBy per il mio dispositivo, e finora ho creato un'attività che quando viene chiamata spegnerà il mio display.StandBy like activity
Il codice è il seguente:
public class MainActivity extends Activity {
private SensorManager mSensorManager;
private PowerManager mPowerManager;
private WindowManager mWindowManager;
private WakeLock mWakeLock;
private Button button;
private TextView textView;
/** Called when the activity is first created. */
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
// Get an instance of the SensorManager
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
// Get an instance of the PowerManager
mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);
// Get an instance of the WindowManager
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
mWindowManager.getDefaultDisplay();
setContentView(R.layout.activity_main);
// textView = (TextView)findViewById(R.id.textView1);
button = (Button) findViewById(R.id.testText);
button.setOnClickListener(mButtonStopListener);
mWakeLock = mPowerManager.newWakeLock(
PowerManager.PARTIAL_WAKE_LOCK, "Your Tag");
// mWakeLock.acquire();
final WindowManager.LayoutParams params = getWindow()
.getAttributes();
params.screenBrightness = 0;
getWindow().setAttributes(params);
} catch (final Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("onCreate", e.getMessage());
}
} // END onCreate
View.OnClickListener mButtonStopListener = new OnClickListener() {
@Override
public void onClick(final View v) {
try {
if (mWakeLock.isHeld()) {
mWakeLock.release();
System.err.println("mWakeLock.release() onTouch");
}
} catch (final Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("onPause", e.getMessage());
}
}
};
@Override
protected void onResume() {
super.onResume();
try {
if (mWakeLock.isHeld()) {
System.err.println("mWakeLock.release() onResume");
mWakeLock.release();
} else {
System.err.println("mWakeLock.acquire() onResume");
mWakeLock.acquire();
}
} catch (final Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
Log.e("onResume", e.getMessage());
}
}
@Override
protected void onPause() {
super.onPause();
}
}
Come ho detto questo codice mi permettono di spegnere lo schermo, e sono in grado di accendere lo schermo cliccando due volte il pulsante di accensione (Non so perché ho due volte il pulsante due volte, ma questo è un problema secondario).
Il problema principale è che quando il display spegne l'azione viene generato ACTION_SCREEN_OFF e, di conseguenza, l'EthernetService Android disabilita la mia connessione. Qualcuno sa come mantenere attiva la connessione?
Grazie;)
Io non sono esattamente sicuro di cosa si sta cercando, ma sarebbe possibile mettere il vostro collegamento in un servizio che detiene il wake-lock? Se stai scaricando qualcosa, rilascia il blocco della sveglia in modo che il dispositivo possa dormire completamente. Se stai solo cercando di mantenere aperta una connessione, allora potrebbe essere una batteria piuttosto grave. – DeeV
Il mio problema è che ho bisogno di riattivare il mio dispositivo (anche lo schermo) con un messaggio ricevuto dalla mia connessione, quindi non posso perdere la connessione (non mi interessa il problema della batteria, l'unica necessità di dormire lo schermo è per salvare la mia vita display). –
se si trattiene un PARTIAL_WAKE_LOCK la connessione Internet non deve essere disabilitata. –