相关疑难解决方法(0)

检测Android上是否有可用的Internet连接

我需要检测Android设备是否已连接到Internet.

本NetworkInfo类提供了一个非静态方法isAvailable()听起来很完美.

问题是:

NetworkInfo ni = new NetworkInfo();
if (!ni.isAvailable()) {
    // do something
}
Run Code Online (Sandbox Code Playgroud)

抛出此错误:

The constructor NetworkInfo is not visible.
Run Code Online (Sandbox Code Playgroud)

安全的赌注是有另一个类返回一个NetworkInfo对象.但我不知道哪个.

  1. 如何让上面的代码段工作?
  2. 我怎么能找到自己在在线文档中需要的信息?
  3. 你能为这种类型的检测提出更好的方法吗?

android internet-connection android-internet

667
推荐指数
6
解决办法
52万
查看次数

android sdk中网络事件的意图动作

我需要接收网络连接的广播,如网络连接,断开连接等.我正在使用广播接收器.任何人都可以告诉我我需要捕获哪些针对网络事件的意图行动,现在根据我在互联网上的搜索,我使用的是android.net.ConnectivityManager.CONNECTIVITY_ACTION.

这是我的广播接收器类:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class NetworkStateReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    // TODO Auto-generated method stub


    if (intent.getAction().equals(
            android.net.ConnectivityManager.CONNECTIVITY_ACTION)) {

        // do something..
    }
}
}
Run Code Online (Sandbox Code Playgroud)

我还添加了访问网络状态的权限:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
Run Code Online (Sandbox Code Playgroud)

这是我在清单文件中声明此类的方法

<receiver class=".NetworkStateReceiver" android:name=".NetworkStateReceiver">
    <intent-filter>
            <action android:name="android.net.ConnectivityManager.CONNECTIVITY_ACTION" />
    </intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)

如果我错了或者有任何其他方式来捕获网络事件,请建议我正确的意图行动.

android intentfilter android-networking

38
推荐指数
2
解决办法
4万
查看次数

Broadcastreceiver用于检测网络是否已连接

我正试图获得用户连接到网络的那一刻,然后我认为这BroadcastReceiver是一个很好的方法......我想做的事情是,当用户连接到网络时,知道该网络是否已连接到Internet .

主要的是知道WiFi是否需要Browse Log in示例:Handling Network Sign-On文档

到目前为止我尝试过什么?

我把我BroadcastReceiver变成了这个

if (intent.getAction().equals(ConnectivityManager.CONNECTIVITY_ACTION)) {
NetworkInfo networkInfo = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
if (networkInfo != null && networkInfo.getDetailedState() == NetworkInfo.DetailedState.CONNECTED) {
    Log.d("Network", "Internet YAY");
} else if (networkInfo != null && networkInfo.getDetailedState() == NetworkInfo.DetailedState.DISCONNECTED) {
    if (isNetworkOnline()) {
        Log.d(TAG, String.valueOf(tikis));
        NetTask TeInternet = new NetTask();
        TeInternet.execute("https://www.google.com");


    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,当我尝试连接到WiFi没有Internet Connection输入的是这样的:

D/Network? Internet YAY
D/Network? Internet YAY
D/Network? Internet YAY
D/RequiresLoginBroadcast? 1 //this occurs sometimes …
Run Code Online (Sandbox Code Playgroud)

android

23
推荐指数
2
解决办法
3万
查看次数

Android:在广播接收器中连接到wifi/3g时检查网络连接返回未连接

我想在broadcastReceiver中检查设备是否已连接.下面是我的代码:

public boolean isOnline(Context context) {
NetworkInfo info = (NetworkInfo) ((ConnectivityManager) context
        .getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();

if (info == null || !info.isConnected()) {
    Log.e("UpdateDataReceiver","info: "+info);
    return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)

我的代码问题: 当BroadcastReceiver在后台触发时(当app在后台时),上面的函数返回false(即使连接了wifi),当app在前台时它返回true.

info:NetworkInfo:type:WIFI [],state:DISCONNECTED/BLOCKED,reason :( unspecified),extra:(none),漫游:false,failover:false,isAvailable:true,isConnectedToProvisioningNetwork:false,simId:0

设备信息:Redmi Note

android

7
推荐指数
2
解决办法
5831
查看次数

等待网络连接

我需要让我的应用程序等待,直到wifi连接完全建立,然后才继续运行.我现在有这个代码:

wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
    if(!wifiManager.isWifiEnabled())
    {
        Toast.makeText(this, "Connecting to wifi network", Toast.LENGTH_SHORT).show();
        wifiManager.setWifiEnabled(true);
        //wait for connection to be establisihed and only then proceed


    }
Run Code Online (Sandbox Code Playgroud)

java android

5
推荐指数
1
解决办法
2682
查看次数

使用Context.CONNECTIVITY_SERVICE检查Internet连接

我正在使用此代码检查互联网连接:

private boolean checkInternetConnection() {
    ConnectivityManager cm = (ConnectivityManager)
                              getSystemService(Context.CONNECTIVITY_SERVICE);
    // test for connection
    if (cm.getActiveNetworkInfo() != null
            && cm.getActiveNetworkInfo().isAvailable()
            && cm.getActiveNetworkInfo().isConnected()) {
        return true;
    } else {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

但即使我关闭wifi,它仍然会返回true.

在仿真器和设备上尝试了相同的结果?
怎么了 ?

networking android

3
推荐指数
1
解决办法
2万
查看次数

如何仅在wifi上的android中将数据发送到服务器

如何检测是否WiFi已打开,以决定是否通过android客户端将数据传输到服务器?

在使用网络服务的android设备上,首先android设备会检查WiFi打开或关闭状态,然后在WiFi关闭状态下将数据存储在数据库或其他资源中,并且一旦打开/启用WiFi即可获取数据开始传输到服务器。

应该使用什么来实现这一目标?

android

1
推荐指数
1
解决办法
1108
查看次数