有没有办法通过代码限制某些WIFI的数据传输?

时间:2019-07-26 14:57:31

标签: java android

我正在创建一个应用程序,该应用程序可以访问互联网,但经过30分钟,用户应该问一些问题以继续浏览。该用户已连接到我的wifi,因此我想停止浏览或数据传输,直到该用户在应用程序上提问,有人知道如何实现吗?

我已经检查了android中的连通性,但看不到禁用数据使用的方法please check the link

1 个答案:

答案 0 :(得分:0)

Android不允许您完全禁用系统范围的网络,而无需通过系统配置手动启用它。

您确实可以打开或关闭Internet连接,但是用户将可以通过系统设置将其重新打开。为此,您可以看看this link

总结起来,您需要在清单文件中添加权限并使用WifiManager类。

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE);
if (wifiManager.isWifiEnabled())
{
    wifiManager.setWifiEnabled(false);
} else {
    wifiManager.setWifiEnabled(true);
}

但是,如果您想在应用程序中禁用Internet访问,则无需摆弄Android网络设置。我假设您正在WebView中运行您的应用程序。如果是这样,您可以将WebView包裹在if支票中。

package com.alfredo.example;

import android.os.Bundle;
import android.app.Activity;
import android.util.Log;

public class MainActivity extends Activity {

    private final WebView myWebView;
    private final Button myFormButton;

    private boolean hasUserCompletedForm = false;

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

        WebView myWebView = (WebView) findViewById(R.id.webView1);
        Button myFormButton = (Button) findViewById(R.id.button1);

        myFormButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                hasUserCompletedForm = true;
            }
        }

        if (hasUserCompletedForm) {
            myFormButton.setVisibility(View.GONE);

            myWebView.loadUrl("http://www.google.com");
            myWebView.setVisibility(View.VISIBLE);
        } else {
            myWebView.setVisibility(View.GONE);
            myFormButton.setVisibility(View.VISIBLE);
        }
    }
}