欧美成人精品手机在线观看_69视频国产_动漫精品第一页_日韩中文字幕网 - 日本欧美一区二区

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

android網(wǎng)絡(luò)狀態(tài)判斷(wifi、3G、2G)

admin
2013年2月25日 12:58 本文熱度 4132
本文章先是介紹了判斷wifi的網(wǎng)絡(luò)狀態(tài),這個(gè)明顯就會(huì)有問題,現(xiàn)在的網(wǎng)絡(luò)有3G、2G那我們肯定不能少這兩個(gè)啊,后面的程序加以更證了,有需要的同學(xué)可以看看。



首先需要加入權(quán)限








 代碼如下 復(fù)制代碼

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
    <uses-permission android:name="android.permission.INTERNET"/>


檢查網(wǎng)絡(luò)狀態(tài)代碼如下








 代碼如下 復(fù)制代碼

public boolean CheckNetworkState()
    {
        boolean flag = false;
        ConnectivityManager manager = (ConnectivityManager)getSystemService(
                Context.CONNECTIVITY_SERVICE);
        if(manager.getActiveNetworkInfo() != null)
        {
            flag = manager.getActiveNetworkInfo().isAvailable();
        }
        if(!flag)
        {
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setIcon(android.R.drawable.ic_dialog_alert);
            builder.setTitle(R.string.netstate);
            builder.setMessage(R.string.setnetwork);
            builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
               
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                    Intent mIntent = new Intent("/");
                    ComponentName comp = new ComponentName("com.android.settings",
                            "com.android.settings.WirelessSettings");
                    mIntent.setComponent(comp);
                    mIntent.setAction("android.intent.action.VIEW");
                    startActivity(mIntent);
                }
            });
            builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
               
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });
            builder.create();
            builder.show();
        }
       
        return flag;
       
    }


 


效果如下,用戶可以點(diǎn)擊確定來設(shè)置網(wǎng)絡(luò),比如啟動(dòng)wifi



-------------------------------------------------------------------------------------------------
如果希望網(wǎng)絡(luò)連接時(shí)做一些事情的話,需要判斷當(dāng)前網(wǎng)絡(luò)狀態(tài)是否為true,為真則進(jìn)行一些操作,否則設(shè)置網(wǎng)絡(luò)。還可以用另外一種方式,其實(shí)差不多








 代碼如下 復(fù)制代碼

//setnetwork
    public void setNetwork()
    {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(android.R.drawable.ic_dialog_alert);
        builder.setTitle(R.string.netstate);
        builder.setMessage(R.string.setnetwork);
        builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
           
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                Intent mIntent = new Intent("/");
                ComponentName comp = new ComponentName("com.android.settings",
                        "com.android.settings.WirelessSettings");
                mIntent.setComponent(comp);
                mIntent.setAction("android.intent.action.VIEW");
                startActivity(mIntent);
            }
        });
        builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
           
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });
        builder.create();
        builder.show();
    }
   
    //NETWORK
    public boolean isNetworkAvailable()
    {
        Context context = getApplicationContext();
        ConnectivityManager connect = (ConnectivityManager)context.getSystemService(
                Context.CONNECTIVITY_SERVICE);
        if(connect==null)
        {
            return false;
        }else//get all network info
        {
            NetworkInfo[] info = connect.getAllNetworkInfo();
            if(info!=null)
            {
                for(int i=0;i<info.length;i++)
                {
                    if(info[i].getState()==NetworkInfo.State.CONNECTED)
                    {
                        return true;
                    }
                }
            }
        }
        return false;
    }



 


然后通過判斷如果當(dāng)前狀態(tài)可用則執(zhí)行相關(guān)代碼,不可用則設(shè)置網(wǎng)絡(luò)








 代碼如下 復(fù)制代碼

if(isNetworkAvailable())
{
相關(guān)代碼
}else
{
setNetwork();
}]


這篇文章中已經(jīng)介紹了網(wǎng)絡(luò)狀態(tài)的判斷,但是測(cè)試后發(fā)現(xiàn)用此方法只能夠判斷WIFI是否連接,而現(xiàn)在的智能機(jī)可以是wifi、3G、甚至2G。那么如果用上面的方法就不行了需要進(jìn)行一下修改,使其在網(wǎng)絡(luò)不連接(無論wifi、3G、2G)的時(shí)候也可以判斷。代碼如下








 代碼如下 復(fù)制代碼
//Check network
    public void CheckNetworkState()
    {
        boolean flag = false;
        ConnectivityManager manager = (ConnectivityManager)getSystemService(
                Context.CONNECTIVITY_SERVICE);
        State mobile = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
        State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
        //如果3G、wifi、2G等網(wǎng)絡(luò)狀態(tài)是連接的,則退出,否則顯示提示信息進(jìn)入網(wǎng)絡(luò)設(shè)置界面
        if(mobile == State.CONNECTED||mobile==State.CONNECTING)
        return;
        if(wifi == State.CONNECTED||wifi==State.CONNECTING)
        return;
        showTips();
    }
   
    private void showTips()
    {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(android.R.drawable.ic_dialog_alert);
        builder.setTitle(R.string.netstate);
        builder.setMessage(R.string.setnetwork);
        builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
           
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // 如果沒有網(wǎng)絡(luò)連接,則進(jìn)入網(wǎng)絡(luò)設(shè)置界面
                startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
            }
        });
        builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
           
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });
        builder.create();
        builder.show();
    }

種方式更加簡(jiǎn)單,也更加有用,當(dāng)然第一篇也有可取之處,可以加入3G狀態(tài)檢查即可
注意:別忘了加上權(quán)限








 代碼如下 復(fù)制代碼

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>


該文章在 2013/2/25 12:58:14 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲(chǔ)管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved