GVKun编程网logo

设置Android设备WIFI在休眠时永不断开的代码实现(安卓11wifi休眠)

21

对于想了解设置Android设备WIFI在休眠时永不断开的代码实现的读者,本文将提供新的信息,我们将详细介绍安卓11wifi休眠,并且为您提供关于adb通过wifi连接android设备、adb通过w

对于想了解设置Android设备WIFI在休眠时永不断开的代码实现的读者,本文将提供新的信息,我们将详细介绍安卓11wifi休眠,并且为您提供关于adb通过wifi连接android设备、adb通过wifi连接android设备流程解析、Android - 永不锁屏,开机不锁屏,删除设置中休眠时间选项、Android ::如何从WiFi网络断开连接?的有价值信息。

本文目录一览:

设置Android设备WIFI在休眠时永不断开的代码实现(安卓11wifi休眠)

设置Android设备WIFI在休眠时永不断开的代码实现(安卓11wifi休眠)

MainActivity如下:

package cc.ab;

import android.os.Bundle;
import android.provider.Settings;
import android.app.Activity;
/**
 * Demo描述:
 * 设置设备在睡眠期间始终保持WLAN开启.
 * 
 * 参考资料:
 * 1 http://stackoverflow.com/questions/8652031/how-to-modify-wi-fi-sleep-policy-programmatically/8655070#8655070
 * 2 http://blog.csdn.net/mrlixirong/article/details/24938637
 *  Thank you very much
 *  
 * 注意事项:
 * 1 这里使用的是android.provider.Settings.System.WIFI_SLEEP_POLICY
 *  而不是Settings.System.WIFI_SLEEP_POLICY!!!!!!!!!!!!!!!!!!!!!!!
 *  
 * 2 权限<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
 * 
 * 3 在实际项目中,这么强制性地设置WIFI在休眠时永不断开有些粗鲁了.
 *  可以先记录下WIFI原本的策略,待我们的逻辑完成后再还原回去为好.
 */
public class MainActivity extends Activity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  setWifiNeverSleep();
 }

 private void setWifiNeverSleep(){
  int wifiSleepPolicy=0;
  wifiSleepPolicy=Settings.System.getInt(getContentResolver(),android.provider.Settings.System.WIFI_SLEEP_POLICY,Settings.System.WIFI_SLEEP_POLICY_DEFAULT);
  System.out.println("---> 修改前的Wifi休眠策略值 WIFI_SLEEP_POLICY="+wifiSleepPolicy);
  
  
  Settings.System.putInt(getContentResolver(),Settings.System.WIFI_SLEEP_POLICY_NEVER);
  
  
  wifiSleepPolicy=Settings.System.getInt(getContentResolver(),Settings.System.WIFI_SLEEP_POLICY_DEFAULT);
    System.out.println("---> 修改后的Wifi休眠策略值 WIFI_SLEEP_POLICY="+wifiSleepPolicy);
 }
 
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 >

 <TextView
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="@string/hello_world" />

</RelativeLayout>

代码如上,不过在实际项目中,这么强制性地设置WIFI在休眠时永不断开有些粗鲁了.
可以先记录下WIFI原本的策略,待我们的逻辑完成后再还原回去为好.

您可能感兴趣的文章:

  • Android编程实现屏幕禁止休眠的方法
  • Android系统永不锁屏永不休眠的方法
  • 设置Android系统永不锁屏永不休眠的方法
  • 探讨:如何修改Android超时休眠时间
  • Android 手机防止休眠的两种实现方法

adb通过wifi连接android设备

adb通过wifi连接android设备

在开发的过程中大家一般都会选择使用数据线连接的方式进行调试,但是有些时候比如使用模拟器时就不能这样了,所以有必要来研究下怎么使用adb通过wifi连接我们的Android;

那么我们今天分别使用adb连接移动设备,模拟器

case 1:连接Android移动设备

1.USB连接手机和电脑;

2.运行 adb devices,测试是否连接成功,能出现设备列表即可;

3.运行

adb tcpip 5555
然后断开 USB 连接。

4.通过手机状态信息,查看手机的IP地址,一般会在【设置】-【关于手机】-【状态信息】找到IP地址。

5.运行

adb connect 192.168.2.100
若出现:

connected to 192.168.2.100:5555
说明连接成功。

7.相关命令

adb disconnect 192.168.2.100 # 断开无线连接
adb kill-server # 重新启动adb

 

case 2:连接模拟器

模拟器或者电视盒子在已知adb调试端口的情况下可以直接通过adb connect xxx.xxx.xxx.xxx:xxxx(模拟器或盒子的IP:adb调试端口),

通过adb devices看到已经连接的设备

常见模拟器adb端口如下图所示:

 

adb通过wifi连接android设备流程解析

adb通过wifi连接android设备流程解析

在开发的过程中大家一般都会选择使用数据线连接的方式进行调试,但是有些时候比如使用模拟器时就不能这样了,所以有必要来研究下怎么使用adb通过wifi连接我们的Android;

那么我们今天分别使用adb连接移动设备,模拟器

case 1:连接Android移动设备

1.USB连接手机和电脑;

2.运行 adb devices,测试是否连接成功,能出现设备列表即可;

3.运行

adb tcpip 5555

然后断开 USB 连接。

4.通过手机状态信息,查看手机的IP地址,一般会在【设置】-【关于手机】-【状态信息】找到IP地址。

5.运行

adb connect 192.168.2.100

若出现:

connected to 192.168.2.100:5555

说明连接成功。

7.相关命令

adb disconnect 192.168.2.100 # 断开无线连接
adb kill-server # 重新启动adb

case 2:连接模拟器

模拟器或者电视盒子在已知adb调试端口的情况下可以直接通过adb connect xxx.xxx.xxx.xxx:xxxx(模拟器或盒子的IP:adb调试端口),

通过adb devices看到已经连接的设备

常见模拟器adb端口如下图所示:

详细内容请参考:https://developer.android.com/studio/command-line/adb

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

您可能感兴趣的文章:
  • Android adb命令中pm工具的作用及用法说明
  • Android adb安装apk时提示Invalid APK file的问题
  • python中adb有什么功能
  • Android user版通过adb_enable开启adb 调试 不提示对话框的流程分析
  • 详解adb shell 常用命令
  • Android PC端用ADB抓取指定应用日志实现步骤
  • python+adb命令实现自动刷视频脚本案例
  • 详解android adb常见用法

Android - 永不锁屏,开机不锁屏,删除设置中休眠时间选项

Android - 永不锁屏,开机不锁屏,删除设置中休眠时间选项


http://www.jianshu.com/p/fdd2a0aabd23


Android 永不锁屏,开机不锁屏,删除设置中休眠时间选项

Android 6.0.1

1.Settings 删掉屏幕待机选项

packages/apps/Settings/res/xml/display_settings.xml

     <!-- Hide screen sleep <ListPreference android:key="screen_timeout" android:title="@string/screen_timeout" android:summary="@string/screen_timeout_summary" android:persistent="false" android:entries="@array/screen_timeout_entries" android:entryValues="@array/screen_timeout_values" /> -->

注释掉这个 ListPreference

packages/apps/Settings/src/com/android/settings/DisplaySettings.java
添加 if 条件,如果没有找到这个 preference 就不执行相关操作;具体可以参考被隐藏的 night_mode

 mScreenTimeoutPreference = (ListPreference) findPreference(KEY_SCREEN_TIMEOUT); if (mScreenTimeoutPreference !=null ) { final long currentTimeout = Settings.System.getLong(resolver, SCREEN_OFF_TIMEOUT, FALLBACK_SCREEN_TIMEOUT_VALUE); mScreenTimeoutPreference.setValue(String.valueOf(currentTimeout)); mScreenTimeoutPreference.setOnPreferenceChangeListener(this); disableUnusableTimeouts(mScreenTimeoutPreference); updateTimeoutPreferenceDescription(currentTimeout); }

2. 禁止锁屏

frameworks/base/packages/SettingsProvider/res/values/defaults.xml
<bool name="def_lockscreen_disabled">false</bool> 改为 true;即默认禁止锁屏

frameworks/base/core/res/res/values/config.xml
<integer name="config_multiuserMaximumUsers">1</integer> 不允许多用户;即最大用户数为 1

分别编译 frameworks/base/packages/SettingsProvider 与 frameworks/base
编译后 push 到 system/priv-app/SettingsProvider/SettingsProvider.apk system/framework/framework.jar
删去机器中对应的 oat 目录。重启或恢复出厂设置。第一次开机时,会先出现 status bar,launcher 要等一会才出来。
之后重启就可以直接进入 launcher。机器会默认不锁屏。但还是会进入 sleep 状态。


源码流程:

frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

if (upgradeVersion == 54)// 版本为54才会设置timeout ...... private void upgradeScreenTimeoutFromNever(SQLiteDatabase db) { // See if the timeout is -1 (for "Never"). Cursor c = db.query(TABLE_SYSTEM, new String[] { "_id", "value" }, "name=? AND value=?", new String[] { Settings.System.SCREEN_OFF_TIMEOUT, "-1" }, null, null, null); SQLiteStatement stmt = null; if (c.getCount() > 0) { c.close(); try { stmt = db.compileStatement("INSERT OR REPLACE INTO system(name,value)" + " VALUES(?,?);"); // Set the timeout to 30 minutes in milliseconds loadSetting(stmt, Settings.System.SCREEN_OFF_TIMEOUT, Integer.toString(30 * 60 * 1000)); } finally { if (stmt != null) stmt.close(); } } else { c.close(); } } ...... if (SystemProperties.getBoolean("ro.lockscreen.disable.default", false) == true) { loadSetting(stmt, Settings.System.LOCKSCREEN_DISABLED, "1"); } else { loadBooleanSetting(stmt, Settings.System.LOCKSCREEN_DISABLED, R.bool.def_lockscreen_disabled); }

timeout 若是 - 1,则永不锁屏
读取 "ro.lockscreen.disable.default",如果默认为 true,则设置禁止锁屏;否则从 xml 中读配置

frameworks/base/packages/SettingsProvider/res/values/defaults.xml

    <integer name="def_screen_off_timeout">60000</integer>

    <bool name="def_lockscreen_disabled">false</bool>`

禁止锁屏默认为 false


Android ::如何从WiFi网络断开连接?

Android ::如何从WiFi网络断开连接?

我已经Google搜索了许多网站,说“禁用无线电广播”.但在我的情况下,我只想让 Android设备断开与特定的WiFi网络(SSID预先知道),而不关闭WiFi收音机.请给我一些关于这个问题的见解

解决方法

哇这不应该花一个月才能回答.

这是我通常使用的最简单的方法:

WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
 wifi.disconnect();
 discon = new disconnectWifi();
 registerReceiver(discon,new IntentFilter(WifiManager.SUPPLICANT_STATE_CHANGED_ACTION));

哪里disconnectWifi只是一个小类扩展broadcastReceiver:

public class disconnectWifi extends broadcastReceiver  {

    @Override
    public void onReceive(Context c,Intent intent) {
        if(!intent.getParcelableExtra(wifi.EXTRA_NEW_STATE).toString().equals(SupplicantState.SCANNING)) wifi.disconnect();
        }
    }

关于设置Android设备WIFI在休眠时永不断开的代码实现安卓11wifi休眠的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于adb通过wifi连接android设备、adb通过wifi连接android设备流程解析、Android - 永不锁屏,开机不锁屏,删除设置中休眠时间选项、Android ::如何从WiFi网络断开连接?等相关内容,可以在本站寻找。

本文标签: