WIFI項目--Android 獲取本機IP(wifi下),子網掩碼,網關,dns等信息

近期在搗鼓一個小項目,利用wifi熱點在兩手機上傳輸文件。進度有點慢,下面是遇到的一些小問題:
1獲取手機所連接的wifi路由器ip:

ublic class MainActivity extends Activity {  

    private WifiManager my_wifiManager;  
    private WifiInfo wifiInfo;  
    private DhcpInfo dhcpInfo;  

    private TextView tvResult;  

    @Override  
    protected void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  

        my_wifiManager = ((WifiManager) getSystemService("wifi"));  
        dhcpInfo = my_wifiManager.getDhcpInfo();  
        wifiInfo = my_wifiManager.getConnectionInfo();  

        tvResult = (TextView) findViewById(R.id.tvResult);  
    }  

    @Override  
    protected void onResume() {  
        super.onResume();  
        StringBuilder sb = new StringBuilder();  
        sb.append("網絡信息:");  
        sb.append("\nipAddress:" + intToIp(dhcpInfo.ipAddress));  
        sb.append("\nnetmask:" + intToIp(dhcpInfo.netmask));  
        sb.append("\ngateway:" + intToIp(dhcpInfo.gateway));  
        sb.append("\nserverAddress:" + intToIp(dhcpInfo.serverAddress));  
        sb.append("\ndns1:" + intToIp(dhcpInfo.dns1));  
        sb.append("\ndns2:" + intToIp(dhcpInfo.dns2));  
        sb.append("\n");  
        System.out.println(intToIp(dhcpInfo.ipAddress));  
        System.out.println(intToIp(dhcpInfo.netmask));  
        System.out.println(intToIp(dhcpInfo.gateway));  
        System.out.println(intToIp(dhcpInfo.serverAddress));  
        System.out.println(intToIp(dhcpInfo.dns1));  
        System.out.println(intToIp(dhcpInfo.dns2));  
        System.out.println(dhcpInfo.leaseDuration);  

        sb.append("Wifi信息:");  
        sb.append("\nIpAddress:" + intToIp(wifiInfo.getIpAddress()));  
        sb.append("\nMacAddress:" + wifiInfo.getMacAddress());  
        tvResult.setText(sb.toString());  
    }  

    private String intToIp(int paramInt) {  
        return (paramInt & 0xFF) + "." + (0xFF & paramInt >> 8) + "." + (0xFF & paramInt >> 16) + "."  
                + (0xFF & paramInt >> 24);  
    }  
}

項目思路:
思路一:手機A在創建熱點後,開啓tcp服務等待請求,手機B連上手機A的wifi熱點後,B向A發送上線請求(單播)。

思路二:1.開啓熱點一方使用開啓udp監聽請求,並且發送上線請求(廣播);接下來連上該熱點的手機同樣採用這個方式,1監聽–2廣播;這樣的好處是大家都知道對方的存在,是真正意義的羣聊。2.發送文件階段,發送方A先向接收方B方發送文件的數量以及名稱等參數,發送方A並建立TCP服務等待請求,接收方發送N個數量的請求,發送方A相應創建N個線程發送文件。

今天先寫這麼多。。。看看資料先

項目github連接:https://github.com/AriesJiang/WIFIAPComm

發佈了39 篇原創文章 · 獲贊 14 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章