WIFI可以通过编程方式关闭吗

发布于 2024-11-03 04:49:10 字数 46 浏览 4 评论 0原文

如何以编程方式关闭/打开 wifi 并执行 root 操作或需要系统应用程序。

How can wifi be turned off/on programmatically and do is rooted or system app required for this.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

厌味 2024-11-10 04:49:10

需要权限。

我刚刚编写了这个切换 Wifi 的应用程序。

清单

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.stackoverflow.q5766518"
    android:versionCode="1"
    android:versionName="1.0">
    <uses-sdk
        android:minSdkVersion="3" />

    <uses-permission
        android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission
        android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission
        android:name="android.permission.WAKE_LOCK" />

    <application
        android:icon="@drawable/icon"
        android:label="@string/app_name">
        <activity
            android:name=".Main"
            android:label="@string/app_name">
            <intent-filter>
                <action
                    android:name="android.intent.action.MAIN" />
                <category
                    android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <Button
        android:id="@+id/my_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Toggle Wifi" />
</LinearLayout>

主要活动

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

    final Button myButton = (Button) findViewById(R.id.my_button);
    myButton.setOnClickListener(new View.OnClickListener()
    {
      @Override
      public void onClick(View v)
      {
        final WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        wifi.setWifiEnabled(!wifi.isWifiEnabled());
      }
    });
  }

Permissions are required.

I just wrote this app that toggles Wifi.

Manifest

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.stackoverflow.q5766518"
    android:versionCode="1"
    android:versionName="1.0">
    <uses-sdk
        android:minSdkVersion="3" />

    <uses-permission
        android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission
        android:name="android.permission.CHANGE_WIFI_STATE" />
    <uses-permission
        android:name="android.permission.WAKE_LOCK" />

    <application
        android:icon="@drawable/icon"
        android:label="@string/app_name">
        <activity
            android:name=".Main"
            android:label="@string/app_name">
            <intent-filter>
                <action
                    android:name="android.intent.action.MAIN" />
                <category
                    android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>

layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <Button
        android:id="@+id/my_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Toggle Wifi" />
</LinearLayout>

Main Activity

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

    final Button myButton = (Button) findViewById(R.id.my_button);
    myButton.setOnClickListener(new View.OnClickListener()
    {
      @Override
      public void onClick(View v)
      {
        final WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
        wifi.setWifiEnabled(!wifi.isWifiEnabled());
      }
    });
  }
远昼 2024-11-10 04:49:10

WIFI_ON 是一项安全设置;只有由系统固件签名的应用程序才能拥有适当的权限并使用 SDK 进行调整。


更新

setWifiEnabled() 可能支持这一点,正如指出的那样评论里出来了。我没有看到需要权限的证据,但如果有的话,您将得到一个堆栈跟踪,应该指出需要什么。我很抱歉忘记了这条路。

WIFI_ON is a secure setting; only apps signed by the system firmware will be able to hold the proper permission and adjust it using the SDK.


UPDATE

setWifiEnabled() probably supports this, as was pointed out in the comments. I don't see evidence of a permission being required, but if there is one, you'll get a stack trace that should point out what's needed. My apologies for forgetting about this path.

幽梦紫曦~ 2024-11-10 04:49:10

是的,有可能。 wifimangr.setWifiEnabled(假);

<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>
<块引用>

创建Wifimanager的对象..并将方法setWifiEnabled设置为“false”。
wifimangr.setWifiEnabled(false);
























您需要 CHANGE_WIFI_STATE 权限才能执行此操作。

Yes, its possible. wifimangr.setWifiEnabled(false);

Create an object of Wifimanager..and call the method setWifiEnabled to "false".
wifimangr.setWifiEnabled(false);

you need CHANGE_WIFI_STATE permission todo this.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文