相关疑难解决方法(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万
查看次数

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

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

我从这个帖子中知道

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

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

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

任何想法,将不胜感激!

connection events android connectivity

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

互联网监听器Android示例

我正在开发一款能够持续保持与互联网连接的Android应用.如果Internet是dow,它应该向用户发出适当的消息.

有没有像Internet Listener这样的东西?或者如何实现此事件,每当Internet连接不可用时,它应该提供警报.

java networking android android-intent android-service

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

Android网络状态变化检测需要时间

我试图在我的Android应用程序中检测网络状态更改.我按照那个问题的答案:检查INTENT互联网连接

这有效,但广播接收者需要时间来检测变化.当我打开或关闭wifi时,大约10秒后调用onReceive()方法.为什么花这么多时间?有人可以帮忙吗?

谢谢

这是我的代码:

public class NetworkStateReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    Log.d("app", "Network connectivity change");
    if (intent.getExtras() != null) {
        NetworkInfo ni = (NetworkInfo) intent.getExtras().get(
                ConnectivityManager.EXTRA_NETWORK_INFO);
        if (ni != null && ni.getState() == NetworkInfo.State.CONNECTED) {
            Log.i("app", "Network " + ni.getTypeName() + " connected");
            Toast.makeText(context, "CONNECTED", Toast.LENGTH_LONG).show();
        } else if (intent.getBooleanExtra(
                ConnectivityManager.EXTRA_NO_CONNECTIVITY, Boolean.FALSE)) {
            Toast.makeText(context, "DISCONNECTED", Toast.LENGTH_LONG).show();
            Log.d("app", "There's no network connectivity");
        }
    }

}

}
Run Code Online (Sandbox Code Playgroud)

在我的Manifest的应用程序标签中:

<receiver android:name="com.mypackage.NetworkStateReceiver" >
        <intent-filter>
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver

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

android连接到互联网事件

是否有事件告诉我设备已连接到INTERNET(3G或wifi)?我需要在设备连接到INTERNET后才启动一些请求.该代码需要支持Android 2.1.谢谢

connection events android

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

启动和停止广播接收器

我想从两个按钮开始和停止广播接收器.我在两个按钮监听器中编写了这个代码.

代码如下: -

在startButton中,我已经编写了用于注册接收器的代码,如下所示

     startCallBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub

            startCallBtn.setVisibility(View.INVISIBLE);
            stopCallBtn.setVisibility(View.VISIBLE);


            //register call receiver.
            registerReceiver(callReceiver, new IntentFilter(
            "android.intent.action.CALL"));
           System.out.println("Registered Call Receiver Perfectly");
        }
    });
Run Code Online (Sandbox Code Playgroud)

在停止按钮中,我已经将停止接收器的呼叫写为

   stopCallBtn.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            stopCallBtn.setVisibility(View.INVISIBLE);
            startCallBtn.setVisibility(View.VISIBLE);
            stopService(new Intent(MainActivity.this, SpeakOut.class));
            FileOutputStream fos;

          //Unregister sms receivers
            unregisterReceiver(callReceiver);
            System.out.println("Unregistered Call Broadcast Receiver");
        }
    });
Run Code Online (Sandbox Code Playgroud)

当新的呼叫接收时,听众仍在呼叫

android

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

听WIFI状态

我想设置监听器来监听无线状态,任何人都可以帮助我使用我的代码

import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
Run Code Online (Sandbox Code Playgroud)

...

 TelephonyManager wTelephonyManager;
Run Code Online (Sandbox Code Playgroud)

...

     wTelephonyManager=(TelephonyManager)getSystemService(Context.WIFI_SERVICE);
    wTelephonyManager.listen(new PhoneL(),PhoneStateListener.LISTEN_DATA_CONNECTION_STATE);
    connManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
Run Code Online (Sandbox Code Playgroud)

//这是我使用的事件,我想收听wifi更改,上面的代码全部在onCreate {}

class PhoneL extends PhoneStateListener

{   






    public void onWifiStateChanged(int state, String nesto)
    {
         mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
            //mWifi.isConnectedOrConnecting()
             if(mWifi.isConnectedOrConnecting())
             {
                 Toast.makeText(WifiActivity.this,"Ima WIFI",Toast.LENGTH_LONG).show();     
             }
             else
             {
                 Toast.makeText(WifiActivity.this,"! NEMA WIFI",Toast.LENGTH_LONG).show(); 
             }


    }

}
Run Code Online (Sandbox Code Playgroud)

//任何人都可以帮我创建一个监听器,它将监听wifi状态并检查wifi是否已连接或连接,如果不是我想通过3g/4g启用数据包流量

android android-wifi android-wireless android-event

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

如何在android中安排一个任务,它将在互联网可用后立即运行,如果失败则重新安排它?

需要调度程序

  • Run task immediately after net is available
  • Reschedule task if it fails because of some problems.
  • should handle cases of broadcast receiver to know if connection available
  • No delay in execution if the internet is already available not like GCMNetworkManager's OneOfTask which take at least 30 seconds to execute the scheduled task

我尝试了GCM网络管理器的OneOfTask处理它,但即使互联网可用,也需要至少30秒才能执行.

是否有任何其他调度程序将所有上述任务合二为一.

java android gcm-network-manager

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

如果用户使用 firebase 连接互联网,请在线检查用户

我想做一个应用程序,如果用户连接到互联网,它必须在使用 firebase 的其他设备上显示为在线用户。什么应该是合适的方式?

android firebase-realtime-database

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