API挂钩在连接性变化上



我在Android手机上有一个打印机检查应用程序,其基本检查表格
检查员可以进行打印机检查,即使他没有互联网连接,

手机回来了接收/互联网,我想提交检查。

我正在考虑使用Android服务设计该应用
因此,它将使用sqlite保存检查详细信息,然后在有互联网连接重新提交检查时。

但这需要服务定期检查Internet。并会食用大量的电池汁。

我可以注册我的应用程序以通知应用程序或Internet连接服务的服务吗?

wi-fi 移动 Internet的简单检查...

subtest.xml 中:

<receiver android:name=".com.yourapp.ConnectivityChangeReceiver" >
    <intent-filter>
        <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
    </intent-filter>
</receiver>


制作新的 Broadcastreceiver

public class ConnectivityChangeReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(final Context context, final Intent intent) {
        if(checkInternet(context))
        {
            Toast.makeText(context, "Network Available Do operations",Toast.LENGTH_LONG).show(); 
        }
    }
    boolean checkInternet(Context context) {
        ServiceManager serviceManager = new ServiceManager(context);
        if (serviceManager.isNetworkAvailable()) {
            return true;
        } else {
            return false;
        }
    }
}


最后 serviceManager 类:

public class ServiceManager {
    Context context;
    public ServiceManager(Context base) {
        context = base;
    }
    public boolean isNetworkAvailable() {
        ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = cm.getActiveNetworkInfo();
        return networkInfo != null && networkInfo.isConnected();
    }
}


**不要忘记添加清单中使用Internet的权限文件:

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.INTERNET" />



还可以在vogella.com androidServices ...

上查看这篇超酷的文章

相关内容

  • 没有找到相关文章

最新更新