我想知道不活动的时间之前必须通过:
更新:我不想锁定任何东西。我只想知道没有锁定时通常需要多长时间?在OS代码中指定了哪个?
答案 0 :(得分:2)
Wi-Fi关闭?我在哪里可以更改此值?
我不知道你是否可以改变这个值,CommonsWare说这是不可能的。 但是在我的手机上(Froyo,2.2.1),如果按Wifi Settings上的菜单按钮,则会出现“高级”选项。在那里你可以设置Wifi不活动策略。我可以选择永不关闭它,在屏幕关闭时关闭它,或者只在没有连接时关闭它。
这对你有帮助吗?
好的,这是关于#2的信息
Wi-Fi关闭?我在哪里可以更改此值?
显然在android.provider.Settings中有一个未记录的值,称为wifi_idle_ms来控制它。我找到了一些信息here,该设置存储在一个数据库中,该数据库通常位于安全表上的/data/data/com.android.providers.settings/databases/settings.db中。有关如何在XDA上更改它的说明,而且似乎是默认值为15分钟或900000。
答案 1 :(得分:1)
Wi-Fi关闭?我在哪里可以更改此值?
你做不到。它是操作系统的一部分,将受到获得的WifiLocks
的存在的影响。
手机进入睡眠模式?我在哪里可以更改此值?
你做不到。它是操作系统的一部分,将受到获得的WakeLocks
的存在的影响。
答案 2 :(得分:0)
我认为无论是Wi-Fi还是手机都会收到Broadcast
并基于此行事。如果是这样,您可以尝试在Wi-Fi和手机接收之前拦截这些广播,然后只需取消Broadcast
,如:
public class ScreenStateBroadcastReceiver extends BroadcastReceiver
{
private static String TAG=ScreenStateBroadcastReceiver.class.getName();
@Override
public void onReceive(Context context, Intent intent)
{
//checking has screen been switched off?
if (Intent.ACTION_SCREEN_OFF.equalsIgnoreCase(intent.getAction()))
{
Log.v(TAG, "Screen is going off");
this.abortBroadcast();
}
}
}
为了确保您的应用程序在其他操作系统组件之前收到Broadcast
- 您可以尝试将广播接收优先级放入AndroidManifest中,如:
<receiver android:name=".ScreenStateBroadcastReceiver">
<intent-filter android:priority="10000">
<action android:name="android.intent.action.SCREEN_OFF"/>
</intent-filter>
</receiver>
免责声明:从未尝试过,但我希望它能够正常运作