我正在创建一个应用程序,该应用程序可以访问互联网,但经过30分钟,用户应该问一些问题以继续浏览。该用户已连接到我的wifi,因此我想停止浏览或数据传输,直到该用户在应用程序上提问,有人知道如何实现吗?
我已经检查了android中的连通性,但看不到禁用数据使用的方法please check the link
答案 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);
}
}
}