Android判断网络是否可用并且开启网络


package  com.pocketdigi.webview;

  
import  android.app.Activity;
import  android.app.AlertDialog;
import  android.app.ProgressDialog;
import  android.content.Context;
import  android.content.DialogInterface;
import  android.net.ConnectivityManager;
import  android.os.Bundle;
import  android.os.Handler;
import  android.os.Message;
import  android.view.KeyEvent;
import  android.webkit.WebChromeClient;
import  android.webkit.WebView;
import  android.webkit.WebViewClient;
  
 
public  class  main  extends  Activity {
     /** Called when the activity is first created. */
     WebView wv;
     ProgressDialog pd;
     Handler handler;
     
     //检测url
     private  boolean  isOpenNetwork() {
         ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
         if  (connManager.getActiveNetworkInfo() !=  null ) {
         return  connManager.getActiveNetworkInfo().isAvailable();
         }
 
 
         return  false ;
         }
 
     private  void  initMoreGames() {  
         String URL_MOREGAMES =  "http://www.baidu.com" ;  
         WebView mWebView = (WebView) findViewById(R.id.view_gamesort);  
       
         if  (mWebView !=  null ) {  
             mWebView.requestFocus();  
             WebSettings webSettings = mWebView.getSettings();  
             if  (webSettings !=  null ) {  
                 webSettings.setJavaScriptEnabled( true );  
                 webSettings.setCacheMode(MODE_PRIVATE);  
                 webSettings.setDefaultTextEncodingName( "utf-8" );  
             }  
       
             // 判断网络是否可用  
             if (isOpenNetwork() ==  true ) {  
                 mWebView.loadUrl(URL_MOREGAMES);  
             else  {  
                 AlertDialog.Builder builder =  new  AlertDialog.Builder(MoreGamesActivity. this );  
                 builder.setTitle( "没有可用的网络" ).setMessage( "是否对网络进行设置?" );  
                   
                 builder.setPositiveButton( "是" new  DialogInterface.OnClickListener() {  
                     @Override  
                     public  void  onClick(DialogInterface dialog,  int  which) {  
                         Intent intent =  null ;  
                           
                         try  {  
                             String sdkVersion = android.os.Build.VERSION.SDK;  
                             if (Integer.valueOf(sdkVersion) >  10 ) {  
                                 intent =  new  Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);  
                             } else  {  
                                 intent =  new  Intent();  
                                 ComponentName comp =  new  ComponentName( "com.android.settings" "com.android.settings.WirelessSettings" );  
                                 intent.setComponent(comp);  
                                 intent.setAction( "android.intent.action.VIEW" );  
                             }  
                             MoreGamesActivity. this .startActivity(intent);  
                         catch  (Exception e) {  
                             Log.w(TAG,  "open network settings failed, please check..." );  
                             e.printStackTrace();  
                         }  
                     }  
                 }).setNegativeButton( "否" new  DialogInterface.OnClickListener() {  
                     @Override  
                     public  void  onClick(DialogInterface dialog,  int  which) {  
                         dialog.cancel();          
                         finish();  
                     }  
                 }).show();  
             }  
         else  {  
             Log.w(TAG,  "mWebView is null, please check..." );  
         }  
    
     //检测url end
     @Override
     public  void  onCreate(Bundle savedInstanceState) {
         super .onCreate(savedInstanceState);
         setContentView(R.layout.main);
         init(); //执行初始化函数
         loadurl(wv, "http://baidu.com " );
     }
     
     public  void  init(){
         // Progress
         pd= new  ProgressDialog(main. this );
         pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
         pd.setMessage( "数据载入中,请稍候!" );
         // Show/Hide message
         handler= new  Handler(){
         public  void  handleMessage(Message msg)
         {
             //定义一个Handler,用于处理下载线程与UI间通讯
         if  (!Thread.currentThread().isInterrupted())
         {
         switch  (msg.what)
         {
         case  0 :
         pd.show(); //显示进度对话框
         break ;
         case  1 :
         pd.hide(); //隐藏进度对话框,不可使用dismiss()、cancel(),否则再次调用show()时,显示的对话框小圆圈不会动。
         break ;
         }
         }
         super .handleMessage(msg);
         }
         };
         // WebView
         wv=(WebView)findViewById(R.id.wv);
         wv.getSettings().setJavaScriptEnabled( true ); //可用JS
         wv.setScrollBarStyle( 0 ); //滚动条风格,为0就是不给滚动条留空间,滚动条覆盖在网页上
         wv.setWebViewClient( new  WebViewClient(){
         public  boolean  shouldOverrideUrlLoading( final  WebView view,  final  String url) {
         loadurl(view,url); //载入网页
         return  true ;
         } //重写点击动作,用webview载入
 
         });
         wv.setWebChromeClient( new  WebChromeClient(){
         public  void  onProgressChanged(WebView view, int  progress){ //载入进度改变而触发
         if (progress== 100 ){
         handler.sendEmptyMessage( 1 ); //如果全部载入,隐藏进度对话框
         }
         super .onProgressChanged(view, progress);
         }
         });
         }
     
     
     public  boolean  onKeyDown( int  keyCode, KeyEvent event) { //捕捉返回键
         if  ((keyCode == KeyEvent.KEYCODE_BACK) && wv.canGoBack()) {   
             wv.goBack();   
             return  true ;   
         } else  if (keyCode == KeyEvent.KEYCODE_BACK){
             ConfirmExit(); //按了返回键,但已经不能返回,则执行退出确认
             return  true
         }   
         return  super .onKeyDown(keyCode, event);   
     }
     public  void  ConfirmExit(){ //退出确认
         AlertDialog.Builder ad= new  AlertDialog.Builder(main. this );
         ad.setTitle( "退出" );
         ad.setMessage( "是否退出商城?" );
         ad.setPositiveButton( "是" new  DialogInterface.OnClickListener() { //退出按钮
             @Override
             public  void  onClick(DialogInterface dialog,  int  i) {
                 // TODO Auto-generated method stub
                 main. this .finish(); //关闭activity
  
             }
         });
         ad.setNegativeButton( "否" , new  DialogInterface.OnClickListener() {
             @Override
             public  void  onClick(DialogInterface dialog,  int  i) {
                 //不退出不用执行任何操作
             }
         });
         ad.show(); //显示对话框
     }
     public  void  loadurl( final  WebView view, final  String url){
         new  Thread(){
             public  void  run(){
                 handler.sendEmptyMessage( 0 );
                 view.loadUrl(url); //载入网页
             }
         }.start();
     }
   }
本文是小崔从一位大师的评论转载过来的,如果有抄袭清告诫小崔删掉。
小崔最近在做关于这方面的工程,所以为了方便才自己弄下来的。
而且可能有点错误,如有发现请大家指点。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Android判断蓝牙是否已经开启,你可以使用BluetoothAdapter类来实现。以下是一个示例: ```java import android.bluetooth.BluetoothAdapter; import android.content.Intent; import android.os.Bundle; public class MainActivity extends AppCompatActivity { private BluetoothAdapter bluetoothAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); if (bluetoothAdapter == null) { // 设备不支持蓝牙 // 在这里处理蓝牙不可用的情况 } else { // 检查蓝牙是否已经开启 if (!bluetoothAdapter.isEnabled()) { // 蓝牙未开启,可以请求用户打开蓝牙 Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); } else { // 蓝牙已经开启 // 在这里处理蓝牙已开启的情况 } } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_ENABLE_BT) { if (resultCode == RESULT_OK) { // 用户已经打开蓝牙 // 在这里处理用户已打开蓝牙的情况 } else { // 用户未打开蓝牙 // 在这里处理用户未打开蓝牙的情况 } } } } ``` 在上述示例中,我们首先获取蓝牙适配器对象。然后,检查蓝牙适配器是否为null,如果为null表示设备不支持蓝牙。接下来,我们检查蓝牙是否已经开启,如果未开启,可以通过ACTION_REQUEST_ENABLE来请求用户打开蓝牙。在onActivityResult方法中,可以处理用户的响应结果。 请注意,你需要在AndroidManifest.xml文件中声明蓝牙权限: ```xml <uses-permission android:name="android.permission.BLUETOOTH" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" /> ``` 这样就可以判断蓝牙是否已经开启了。希望对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值