国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

android的UDP編程實例

2020-04-11 12:01:14
字體:
來源:轉載
供稿:網友
一、有的手機不能直接接收UDP包,可能是手機廠商在定制Rom的時候把這個功能給關掉了。
1、可先在oncreate()方法里面實例化一個WifiManager.MulticastLock 對象lock;具體如下:
復制代碼 代碼如下:

WifiManager manager = (WifiManager) this
                .getSystemService(Context.WIFI_SERVICE);
WifiManager.MulticastLock lock= manager.createMulticastLock("test wifi");

2、在調用廣播發送、接收報文之前先調用lock.acquire()方法;
3、用完之后及時調用lock.release()釋放資源,否決多次調用lock.acquire()方法,程序可能會崩,詳情請見
Caused by: java.lang.UnsupportedOperationException: Exceeded maximum number of wifi locks
注;記得在配置文件里面添加如下權限:
復制代碼 代碼如下:

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

經過這樣處理后,多數手機都能正常發送接收到廣播報文。
本小點轉載自Android手機接收不到UDP報文
二、在UDP通信中,android端發送UDP廣播包沒有問題。至于接收的話,有時候不能接收到包。
在UDP通信中,android端發送UDP廣播包沒有問題。至于接收的話,有時候不能接收到包。但是如果UDP包中指定了目標主機的地址的話,那么android端就能正常接收。
下面上一段代碼,大家可用這段代碼進行測試。
1、在一個Service里面,我們創建一個線程
復制代碼 代碼如下:

public void onCreate() {//用于創建線程
        WifiManager manager = (WifiManager) this
                .getSystemService(Context.WIFI_SERVICE);
        udphelper = new UdpHelper(manager);

        //傳遞WifiManager對象,以便在UDPHelper類里面使用MulticastLock
        udphelper.addObserver(MsgReceiveService.this);
        tReceived = new Thread(udphelper);
        tReceived.start();
        super.onCreate();
    }

2、弄一個UDP幫助類,這個類主要用于發送和接收數據
復制代碼 代碼如下:

package com.example.com.ihome.bang.util;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.MulticastSocket;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Observable;
import com.example.com.ihome.bang.tool.SendThread;
import android.net.wifi.WifiManager;
import android.util.Log;
/**
 *
 * UdpHelper幫助類
 *
 * @author 陳 主站蜘蛛池模板: 鹤峰县| 彭泽县| 汝州市| 北安市| 眉山市| 黄山市| 蕉岭县| 陆良县| 基隆市| 秦皇岛市| 安溪县| 牙克石市| 仙游县| 土默特右旗| 镇远县| 舟山市| 沙河市| 滕州市| 雅安市| 东光县| 舞钢市| 年辖:市辖区| 松滋市| 天全县| 洛宁县| 黄浦区| 富宁县| 榆中县| 甘德县| 宜州市| 新丰县| 伊川县| 洛南县| 府谷县| 开江县| 沛县| 南昌市| 宜黄县| 新野县| 成都市| 方山县|