安卓 以太网开关 代码控制

需求: 有个定制rom的安卓设备,在24小时不关机的情况下,不知道是客户交换机或者路由设置的原因,长期运行一段儿时间后(数周或者数月),以太网失效,开关机也无法连上网络,经测试,操作设置里面的以太网开关重启以太网可以修复,准备代码检测到以太网失效之后代码关开一次以太网,奈何不是公司自己编译的安卓rom,也没拿到rom源码,只能反编译查看

2. 操作步骤

  1. 将对应的设置app从系统拉取出来  、system/priv-app/Settings.apk(仅示意 不同rom不同)

   2. 反编译得到对应的jar包

   3. jdjui查看 代码(由adb shell am start com.android.settings/com.android.settings.Settings打开设置的命令得知 对应的界面的 java文件名称)

 4.  查找最终的开关方法

3. 由于改方法只对系统开放 因此暂时用反射方式调用

   demo的界面

 

页面代码:

  <Button
        android:id="@+id/button_open"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="开" />
    <Button
        android:id="@+id/button_close"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="关" />

对应的安卓代码  打开部分

  findViewById(R.id.button_open).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.e(" cjq ", "button_open");
 
                 try {
                     Class<?> ethernetManagerCls = Class.forName("android.net.ethernet.EthernetManager");
                     //获取EthernetManager实例
                     Object ethManager = Main2Activity.this.getSystemService("ethernet");
                     Method setDataEnabled = ethManager.getClass().getDeclaredMethod("setEthEnabled",boolean.class);
                     Log.e("cjq ",  " "  +  setDataEnabled);
                     if (null != setDataEnabled) {
                         setDataEnabled.invoke(ethManager,true);
                     }

                 }catch (Exception e){
                  e.printStackTrace();
                 }


            }
        });

 对应的关的部分

  findViewById(R.id.button_close).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.e(" cjq ", "button_close");



                try {
                    Class<?> ethernetManagerCls = Class.forName("android.net.ethernet.EthernetManager");
                    //获取EthernetManager实例
                    Object ethManager = Main2Activity.this.getSystemService("ethernet");
                    Method setDataEnabled = ethManager.getClass().getDeclaredMethod("setEthEnabled",boolean.class);
                    if (null != setDataEnabled) {
                        setDataEnabled.invoke(ethManager, false);
                    }

                }catch (Exception e){
                    e.printStackTrace();
                }

            }
        });

由于网上没找到这部分解决方案,记录下自己的解决过程。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Android 11 在系统设置中添加了以太网开关,用户现在可以方便地切换设备的网络连接方式。以太网开关可以在有线网络和无线网络之间进行切换,为用户提供了更多的选择。 在Android 11中,用户可以通过以下步骤来使用以太网开关: 1. 首先,打开手机的设置应用程序。 2. 在设置应用程序中,找到“网络和互联网”选项并点击进入。 3. 在网络和互联网页面中,向下滑动并找到“物理连接”或“以太网”选项,并点击进入。 4. 在物理连接或以太网页面中,用户可以看到已连接的有线网络信息。 5. 在有线网络信息下方,会有一个开关按钮,用户可以点击该按钮来切换到无线网络或有线网络。 6. 当用户点击开关按钮后,系统会自动断开当前的网络连接,并切换到用户选择的网络连接方式。 通过这样的操作,用户可以轻松切换设备的网络连接方式。无论是有线连接还是无线连接,都可以根据实际需要进行切换。这个以太网开关的添加为用户提供了更多连接设备的灵活性和便利性。 需要注意的是,在进行网络连接方式切换时,用户需要确保设备已连接到可用的网络,并且有线连接的设备需要连接到已经配置好的以太网接入点。通过使用以太网开关,用户可以根据实际情况选择最适合自己需求的网络连接方式,提供更好的使用体验和网络性能。 ### 回答2: Android 11 是谷歌最新发布的操作系统版本。在这个版本中,谷歌添加了以太网开关的功能,使用户可以更便捷地切换设备的网络连接方式。 以太网开关可以让用户在无线网络和有线网络之间进行切换,以满足不同场景下的网络需求。用户只需打开手机的设置菜单,然后选择网络和互联网选项,即可看到以太网开关的选项。 通过点击以太网开关,用户可以选择连接或断开以太网,并且可以在连接时选择需要连接的网络。如果用户在家里或办公室有可用的有线网络,他们可以选择连接以太网,这样可以提供更稳定和快速的网络连接。当用户需要切换回无线网络时,只需再次点击以太网开关即可断开连接。 除了方便的网络切换,Android 11 的以太网开关还提供了一些额外的功能。用户可以通过以太网开关查看当前的网络状态和连接速度。此外,用户还可以配置和管理网络设置,包括静态IP地址、代理设置等。 总而言之,通过 Android 11 的以太网开关功能,用户可以更轻松地在有线网络和无线网络之间进行切换,并且可以方便地查看和管理网络设置。这一功能的加入使得手机的网络连接更加灵活,能够更好地满足用户的各种需求。 ### 回答3: Android 11引入了以太网开关,使用户能够方便地切换手机连接方式。以太网开关的添加为用户提供了更多的连接选项。在过去,用户只能使用Wi-Fi或移动数据进行连接,现在他们可以将手机直接连接到有线网络,提供更加稳定和快速的网络连接。 通过以太网开关,用户可以通过USB Type-C至以太网适配器连​​接手机与有线网络。这个适配器可以通过将手机和以太网连接起来,为用户提供更加稳定和可靠的网络连接方式。这对于需要高速互联网连接的用户来说,特别是在需要进行文件下载、游戏或高负载应用程序使用时,非常有用。 启用以太网开关非常简单。用户只需连接手机和以太网适配器,然后在设置菜单中找到网络和互联网选项。在这个菜单中,他们将看到一个新的以太网开关,可以手动启用或禁用。用户可以通过切换这个开关来快速和方便地切换手机的连接方式。 以太网开关的引入对于一些特定情况下的用户来说非常实用。比如在没有可用Wi-Fi网络的环境下,用户可以通过以太网连接来访问互联网。此外,对于一些需要稳定和快速连接的场景,比如游戏比赛、远程办公等,以太网连接也是一个很好的选择。 总之,Android 11添加了以太网开关,为用户提供了更多的连接选项。通过USB Type-C至以太网适配器,用户可以将手机连接到有线网络上,获得更加稳定和快速的网络连接。这个功能对于特定情况下的用户来说非常实用,为他们提供了更多的灵活性和便利性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值