我正在研究一种不断从WiFi中断开连接的Android Wear应用程序。有没有一种方法可以保持WiFi连接稳定编程?我知道更多的硬件问题,但我看到一些有助于保持WiFi连接稳定的应用程序。用于使Wi-Fi连接稳定的Android代码
-1
A
回答
0
正如你所说,这是一个硬件问题。我可以建议的最好的是运行任何你可以离线,然后有联机功能赶上连接变得可用
0
您可以使用broadcastreceiver检查互联网连接或不像下面。
Manifest.Java
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!-- This permissions are neccessary for broadcast receiver -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver
android:name=".Receiver"
android:enabled="true" >
<intent-filter>
<!-- Intent filters for broadcast receiver -->
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
<action android:name="android.net.wifi.WIFI_STATE_CHANGED" />
<action android:name="android.net.wifi.STATE_CHANGE" />
</intent-filter>
</receiver>
</application>
MyApplication.Java
公共类MyApplication的延伸可变的应用{ // Gloabl声明在整个应用程序
使用public static boolean activityVisible; // Variable that will check the
// current activity state
public static boolean isActivityVisible() {
return activityVisible; // return true or false
}
public static void activityResumed() {
activityVisible = true;// this will set true when activity resumed
}
public static void activityPaused() {
activityVisible = false;// this will set false when activity paused
}
}
Receiver.Java
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.util.Log;
/**
* Created by root on 7/4/17.
*/
public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
try {
boolean isVisible = MyApplication.isActivityVisible();// Check if
// activity
// is
// visible
// or not
Log.i("ActivityVisible ", "visible : " + isVisible);
// If it is visible then trigger the task else do nothing
if (isVisible == true) {
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager
.getActiveNetworkInfo();
// Check internet connection and accrding to state change the
// text of activity by calling method
if (networkInfo != null && networkInfo.isConnected()) {
new MainActivity().changeTextStatus(true);
Log.i("ActivityVisible ", "visible : " + isVisible);
} else {
new MainActivity().changeTextStatus(false);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
MainActivity.Java
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private static TextView internetStatus;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
internetStatus = (TextView) findViewById(R.id.internet_status);
// At activity startup we manually check the internet status and change
// the text status
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isConnected()) {
changeTextStatus(true);
} else {
changeTextStatus(false);
}
}
// Method to change the text status
public void changeTextStatus(boolean isConnected) {
// Change status according to boolean value
if (isConnected) {
internetStatus.setText("Internet Connected.");
internetStatus.setTextColor(Color.parseColor("#00ff00"));
} else {
internetStatus.setText("Internet Disconnected.");
internetStatus.setTextColor(Color.parseColor("#ff0000"));
}
}
@Override
protected void onPause() {
super.onPause();
MyApplication.activityPaused();// On Pause notify the Application
}
@Override
protected void onResume() {
super.onResume();
MyApplication.activityResumed();// On Resume notify the Application
}
}
相关问题
- 1. 使用Android APP与WIFI代理连接
- 2. 使用Android的WIFI到WIFI连接性
- 3. Android wifi连接
- 4. 需要使Python/Pika代码稳健 - 不稳定的连接和高延迟
- 5. Android上运行的代码连接到互联网/ WIFI
- 6. 使用无WiFi连接的WiFi
- 7. 在android中使用Wifi Direct想要锁定连接的设备
- 8. WiFi连接已启动但无效:代码或android bug?
- 9. 等到wifi连接到android
- 10. ANDROID - 测试wifi连接
- 11. 连接WiFi p2p android,WIFI_P2P_CONNECTION_CHANGED_ACTION
- 12. Android的Unity3D Wifi直接连接
- 13. 连接到使用Android库的Android中的特定WiFi,当WiFi在手机中被禁用时
- 14. 连接使用代码
- 15. 使用Android应用程序的Wifi连接访问
- 16. 套接字连接稳定性
- 17. 通过WiFi上的http连接android
- 18. 限制Android设备的WiFi连接
- 19. 的Android 4.0 - 检查连接到WiFi
- 20. 检测连接到Wifi的Android设备
- 21. 制作wifi连接设备,用于扩展wifi网络
- 22. 使用ksoap2库的Android ICS 4.0.4中的WIFI连接
- 23. GameKit wifi连接?
- 24. Android WIFI如何在特定WIFI连接可用时进行检测
- 25. RabbitMQ和不稳定的连接
- 26. wcf和不稳定的连接
- 27. 稳定的URL来确认连接JavaScript
- 28. 使用Android上的IP地址连接WiFi打印机
- 29. Java中用于连接到特定URL的硬编码代理
- 30. 在Lotus Notes代理上管理不稳定的SQL连接
我没有试图让无线网络连接断开通知。有没有像保持无线连接的服务一样的方式。 – Jeffy
你需要激动吗? – pradeep