灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:2863回复:0

[Android Trick 3]获取网络状态并进入设置

楼主#
更多 发布于:2013-01-10 15:43
关键字:网络状态,系统设置,系统时间,时间格式化
 
首先是判断系统的网络状态
 www.atcpu.com
/**
* 对网络连接状态进行判断
* @return true, 可用; false, 不可用
*/  
private boolean isOpenNetwork() {  
    ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);  
    if (connManager.getActiveNetworkInfo() != null) {  
        return connManager.getActiveNetworkInfo().isAvailable();  
    }  
  
    return false;  
}  
PS:你肯定要加入网络访问的权限
 
[html]  
<uses-permission android:name="android.permission.interNET"></uses-permission>  
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>  
 
 
如果没有网络则进入设置界面
[java]  
if (isOpenNetwork() == true) {  
              
              
} else {  
    AlertDialog.Builder builder = new AlertDialog.Builder(  
                    SomeActivity.this);  
    builder.setTitle("title")  
            .setMessage("message");  
    builder.setPositiveButton(resources.getString(R.string.ok),  
        new DialogInterface.OnClickListener() {  
        @Override  
        public void onClick(DialogInterface dialog, int which) {  
        <span style="white-space:pre">  </span>Intent intent = null;  
  
            try {  
                String sdkVersion = android.os.Build.VERSION.SDK;  
                if (Integer.valueOf(sdkVersion) > 10) {  
                    intent = new Intent(  
                    android.provider.Settings.ACTION_SETTINGS);  
                } else {  
                    intent = new Intent();  
                    ComponentName comp = new ComponentName(  
                        "com.android.settings",  
                        "com.android.settings.Settings");  
                    intent.setComponent(comp);  
                    intent.setAction("android.intent.action.VIEW");  
                }  
                    SomeActivity.this.startActivity(intent);  
            } catch (Exception e) {  
                Log.v("LOG","open network settings failed, please check...");  
            <span style="white-space:pre">  </span>e.printStackTrace();  
            <span style="white-space:pre">  </span>}  
            }  
        })  
        .setNegativeButton(resources.getString(R.string.no),  
            new DialogInterface.OnClickListener() {  
            @Override  
            public void onClick(DialogInterface dialog,int which) {  
                dialog.cancel();  
                finish();  
            }  
        }).show();  
}  
这里再引申一下,通过android.provider.Settings可以获取很多我们需要的和系统设置相关的信息,比如系统时间是24还是12制
[java]  
ContentResolver cv = this.getContentResolver();    
       String strTimeFormat = android.provider.Settings.System.getString(cv,    
                                          android.provider.Settings.System.TIME_12_24);          
       if(strTimeFormat.equals("24"))    
      {    
              Log.i("activity","24");    
       }  
 
额。。这篇博客写得比较杂,那就把时间格式化,获取系统时间也补上吧
[java]  
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM");  //参数为你想要显示的时间格式    
String date=sdf.format(new java.util.Date());  
 
利用Calendar获取
[java]  
Calendar c = Calendar.getInstance();    
取得系统日期:year = c.get(Calendar.YEAR)    
               month = c.grt(Calendar.MONTH)    
               day = c.get(Calendar.DAY_OF_MONTH)    
取得系统时间:hour = c.get(Calendar.HOUR_OF_DAY);    
                  minute = c.get(Calendar.MINUTE)    
                    Calendar c = Calendar.getInstance();    
取得系统日期:year = c.get(Calendar.YEAR)    
                   month = c.grt(Calendar.MONTH)    
                   day = c.get(Calendar.DAY_OF_MONTH)    
取得系统时间:hour = c.get(Calendar.HOUR_OF_DAY);    
                     minute = c.get(Calendar.MINUTE)    
 
利用Time获取
[java]  
Time t=new Time(); // or Time t=new Time("GMT+8"); 加上Time Zone资料。    
t.setToNow(); // 取得系统时间。    
int year = t.year;    
int month = t.month;    
int date = t.monthDay;    
int hour = t.hour; // 0-23    
int minute = t.minute;    
int second = t.second;  

喜欢0 评分0
游客

返回顶部