gpt4 book ai didi

android - 待命类 Activity

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:02:29 24 4
gpt4 key购买 nike

我想为我的设备创建一个 StandBy Activity ,到目前为止我创建了一个 Activity ,当它被调用时将关闭我的显示器。

代码如下:

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();


}

正如我所说,此代码使我能够关闭屏幕,并且我可以通过单击两次电源按钮来打开屏幕(我不知道为什么我需要两次单击按钮,但这是一个次要问题)。

主要问题是当显示器关闭时会生成 Action ACTION_SCREEN_OFF,结果是 android EthernetService 禁用了我的连接。有人知道如何保持连接活跃吗?

谢谢;)

最佳答案

从你的问题中我看出你需要保持以太网服务的 Activity 。

首先,如果您的设备上有 WiFi 连接并且有可用的 WiFi 连接,问题就可以解决。在这种情况下,您可以将 WifiLock 与部分唤醒锁一起使用 - see this question .

但是,如果您真的需要使用以太网连接,您可以尝试 listening for ACTION_SCREEN_OFF intent然后按照 top reply to this question 中的说明尝试重新启用以太网连接.但请注意,在这种情况下,您的设备可能需要获得 root 权限。

希望这有帮助..

关于android - 待命类 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27321556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com