我需要在启动时检测 Android 设备是否已连接或断开与互联网的连接...如果没有连接,应用程序将无法打开。我已经尝试了很多次。但我失败了。这是我的 splash 的源代码:
private Handler splashHandler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Runnable r = new Runnable(){
public void run(){
Intent brain = new Intent(Splash.this, MainMenu.class);
startActivity(brain);
finish();
}
};
setContentView(R.layout.splashscreen);
splashHandler.postDelayed(r, 2000);
}
public void onResume(Bundle savedInstanceState){
super.onResume();
}
如果有人帮助我并给我一个源代码..告诉我我必须把它放在哪里..
最佳答案
来自这个 SO 帖子:Detect whether there is an Internet connection available on Android
您的代码应该如下所示:
private Handler splashHandler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Runnable r = new Runnable(){
public void run(){
Intent brain = new Intent(Splash.this, MainMenu.class);
startActivity(brain);
finish();
}
};
setContentView(R.layout.splashscreen);
if(isNetworkAvailable())
splashHandler.postDelayed(r, 2000);
else {
//Notify user they aren't connected
Toast.makeText(getApplicationContext(), "You aren't connected to the internet.", Toast.LENGTH_SHORT).show();
//close the app
finish();
}
}
public void onResume(Bundle savedInstanceState){
super.onResume();
}
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager
= (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
如上面的链接所述,您还需要添加:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
到你的 AndroidManifest.xml
文件...
关于android - 如何在 splash android 上读取互联网状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11659536/