Tag: android networking

排气和AsyncTask

我读了一篇关于Volley的文章,我知道这是一个很棒的networking图书馆。 但是我不明白一件事。 所有的请求是asynchronous任务或不是? 当我想使用Volley发送asyncTask请求我需要在AsyncTask中放置Volley请求吗? 或者我应该只是打电话给Volley请求它已经是AsyncTask请求? private class MyClass extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String… params) { // do Volley request } } 这是正确的方法?

使用Retrofit 2.0和RxJava获取响应状态代码

我正在尝试升级到Retrofit 2.0,并在我的Android项目中添加RxJava。 我正在做一个API调用,并希望检索错误代码的情况下,从服务器的错误响应。 Observable<MyResponseObject> apiCall(@Body body); 在RxJava调用中: myRetrofitObject.apiCall(body).subscribe(new Subscriber<MyResponseObject>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(MyResponseObject myResponseObject) { //On response from server } }); 在1.9版本中,RetrofitError依然存在,我们可以通过以下方式获得状态: error.getResponse().getStatus() 如何使用RxJava进行Retrofit 2.0操作?

使用okHttp信任所有证书

出于testing的目的,我试图添加一个套接字工厂到我的okHttp客户端,它设置代理时信任所有的东西。 这已经做了很多次,但我的信任套接字工厂的实现似乎是缺less的东西: class TrustEveryoneManager implements X509TrustManager { @Override public void checkClientTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { } @Override public void checkServerTrusted(java.security.cert.X509Certificate[] chain, String authType) throws CertificateException { } @Override public java.security.cert.X509Certificate[] getAcceptedIssuers() { return null; } } OkHttpClient client = new OkHttpClient(); final InetAddress ipAddress = InetAddress.getByName("XX.XXX.XXX.XXX"); // some IP client.setProxy(new Proxy(Proxy.Type.HTTP, new InetSocketAddress(ipAddress, […]

齐射的Androidnetworking库

在我的项目中使用Volley我有几个问题: 这个库可以用于任何Java项目或只是Android? 我在这里看到多个分支,没有关于哪个分支开始的文档。 我应该用哪个分支开始? 你如何将这个库集成到你自己的项目中? 什么方法更好:将Volley作为一个独立的库项目,并将一个jar放到项目中,或者将所有源代码复制到项目中?

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

我正在开发一个android广播接收器来检查互联网连接。 问题是我的广播接收器被调用了两次。 我希望它只在networking可用时才被调用。 如果不可用,我不需要通知。 这是广播接收机 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"); } […]

获取我的无线networking地址Android

在WiFi下连接时,如何获取手机的IP地址? 我在这里find了一个方法,但是它返回类似于24.182.239.255的东西,即使我在wifi下,我也期望类似192.168.1.10。 我想要这样的东西: if (you are under wifi) String ip4 = getWifiIP() else String ip4 = getIPAddress with the method linked before 非常感谢!

示例:使用AsyncTask的Android双向networking套接字

我在Android上find的大部分networking套接字示例都是单向的。 我需要一个双向数据stream的解决scheme。 我最终得知了AsyncTask。 这个例子展示了如何从套接字获取数据并将数据发回给它。 由于正在接收数据的套接字的阻塞性质,阻塞需要在UI线程以外的线程中运行。 为了举例,这个代码连接到一个web服务器。 按“启动AsyncTask”button将打开套接字。 一旦套接字打开,Web服务器等待请求。 按下“发送消息”button将向服务器发送请求。 任何来自服务器的响应都将显示在TextView中。 在http的情况下,一旦所有数据已经​​发送,web服务器将与客户端断开连接。 对于其他TCP数据stream,连接将保持直到一方断开。 截图: AndroidManifest.xml中: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.exampleasynctask" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <uses-permission android:name="android.permission.INTERNET" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".MainActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest> 水库\布局\ main.xml中: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" […]

Google Cloud Messaging – 在networking状态发生变化之前有时收不到消息

在开发一个与GCM集成的小项目时,我偶然发现了一个奇怪的问题。 有些时候,当我开始看日志,看看是否收到消息,消息似乎没有通过,直到我改变了networking状态(IE最初在WiFi上,如果我关掉WiFi,移动到移动数据,消息到达精细)。 在我改变了networking状态之后,消息开始得到完全正常,而且一旦我将networking状态改回到之前的状态(在这种情况下是WiFi),消息就继续被接收。 该项目本身包括启动的能力(启动时启动GCMBaseIntentService),这再次正常工作,我敢肯定,应用程序/服务正在运行,因为我已经手动启动应用程序,当这个问题发生时还检查服务是否正在运行,如果没有运行,检查是否已经注册。 有没有其他人遇到这个问题,或有任何指示,我该如何解决这个问题? 在没有收到消息的时间和收到消息的时间(更改networking状态之后)之间,我没有看到任何帮助。 我浏览过GCM文档,看不到任何由于超时(在设备本身上)而未收到消息,或任何可能影响此设置的configuration选项。 欣赏任何帮助 – 如果需要,我可以提供源代码,但它几乎不会偏离android-sdk中提供的演示应用程序。

如何确定networkingtypes是2G,3G还是4G

我在我的应用程序上有一个指示器来显示networkingtypes(2G或3G或4G),但是在获得networkingtypes后,我怎么知道它应该在什么样的速度类别? 我知道如何检测networkingtypes: private TelephonyManager telephonyManager; telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); CurrentNetworkType = telephonyManager.getNetworkType(); 给定可能的返回值: // public static final int NETWORK_TYPE_1xRTT // Since: API Level 4 // Current network is 1xRTT // Constant Value: 7 (0x00000007) // // public static final int NETWORK_TYPE_CDMA // Since: API Level 4 // Current network is CDMA: Either IS95A or IS95B […]

在android sdk中的networking事件的意图行动

我需要接收networking行为,如networking连接,断开等广播。我正在使用广播接收机为此目的。 任何人都可以告诉我,我需要为networking事件捕获哪些意图行动,现在按照我在互联网上的search我使用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.. } } } 而且我还添加了访问networking状态的权限: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 这里是我如何在清单文件中声明这个类 <receiver class=".NetworkStateReceiver" android:name=".NetworkStateReceiver"> <intent-filter> <action android:name="android.net.ConnectivityManager.CONNECTIVITY_ACTION" /> </intent-filter> </receiver> 如果我错了,请告诉我正确的意向操作,或者是否有其他方法来捕捉networking事件。