相关疑难解决方法(0)

在Android应用程序中检查互联网连接的广播接收器

我正在开发一个用于检查互联网连接的Android广播接收器.

问题是我的广播接收器被调用了两次.我希望它只在网络可用时才被调用.如果它不可用,我不希望得到通知.

这是广播接收器

public class NetworkChangeReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(final Context context, final Intent intent) {
        final ConnectivityManager connMgr = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);

        final android.net.NetworkInfo wifi = connMgr
                .getNetworkInfo(ConnectivityManager.TYPE_WIFI);

        final android.net.NetworkInfo mobile = connMgr
                .getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

        if (wifi.isAvailable() || mobile.isAvailable()) {
            // Do something

            Log.d("Network Available ", "Flag No 1");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是manifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.broadcastreceiverforinternetconnection"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <receiver android:name=".NetworkChangeReceiver" >
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" …
Run Code Online (Sandbox Code Playgroud)

java android broadcastreceiver android-networking android-wifi

228
推荐指数
12
解决办法
25万
查看次数

不推荐使用ConnectivityManager.CONNECTIVITY_ACTION

在Android N中,官方网站上提到"针对Android N的应用不接收CONNECTIVITY_ACTION广播".并且还提到JobScheduler可以用作替代方案.但是JobScheduler它没有提供与CONNECTIVITY_ACTION广播完全相同的行为.

在我的Android应用程序中,我使用此广播来了解设备的网络状态.我想知道,如果在该状态CONNECTINGCONNECTED的帮助下CONNECTIVITY_ACTION广播和它是最适合我的要求.

现在它已被弃用,任何人都可以建议我获得当前网络状态的替代方法吗?

android

75
推荐指数
6
解决办法
3万
查看次数

用于互联网连接状态更改的Android事件

我正在创建一个应用程序,用户将频繁的信息和文件上传到我的服务器.这是通过专用的上传器服务在新线程中完成的.

我从这个帖子中知道

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

你可以相对容易地检查是否有互联网连接.您还可以获取socketTimeoutExceptions以检测Internet连接问题.所有这一切都很好,并且当连接因任何原因无法正常工作时,我可以轻松地缓存上传内容.

我的问题是如何知道何时重新上传?连接恢复时是否触发了事件?或者我是不是在制作一个睡眠的新线程,然后每30秒检查一次互联网连接?

任何想法,将不胜感激!

connection events android connectivity

55
推荐指数
4
解决办法
9万
查看次数