Android中怎么打开Wifi的组播功能

Android中怎么打开Wifi的组播功能,第1张

打开Android中Wifi的组播功能。主要有以下几个步骤:

  在Manifest文件中加入:androidpermissionCHANGE_WIFI_MULTICAST_STATE,这个权限

  获取到MulticastLock对象,这个对象不能直接实例化,要通过WifiManager间接得到,工厂模式

  调用MulticastLock对象的acquire方法,获取到组播锁

  相应的,用完组播,为了不浪费电力,要调用MulticastLock的release方法释放锁

  下面写了个简单示例,通过组播发现服务器。

  Activity写的比较简单

  public class MulticastDemoActivity extends Activity {

  MulticastLock multicastLock;

  / Called when the activity is first created /

  @Override

  public void onCreate(Bundle savedInstanceState) {

  superonCreate(savedInstanceState);

  setContentView(Rlayoutmain);

  allowMulticast();

  try {

  NetUtilfindServerIpAddress();

  } catch (IOException e) {

  throw new RuntimeException(e);

  }

  Logd("multicastdemo", "find ip ok");

  multicastLockrelease();

  }

  private void allowMulticast(){

  WifiManager wifiManager=(WifiManager)getSystemService(ContextWIFI_SERVICE);

  multicastLock=wifiManagercreateMulticastLock("multicasttest");

  multicastLockacquire();

  }

  }

  在Activity中打开和释放组播锁。使用组播发送报文和接收ip地址信息的工具类代码:

  public class NetUtil {

  private static final String TAG="NetUtils";

  private static final int MULTICAST_PORT=5111;

  private static final String GROUP_IP="224507";

  private static byte[] sendData;

  static{

  sendData=new byte[4];

  // 0xEE78F1FB

  sendData[3] = (byte) 0xEE;

  sendData[2] = (byte) 0×78;

  sendData[1] = (byte) 0xF1;

  sendData[0] = (byte) 0xFB;

  }

  public static String findServerIpAddress() throws IOException{

  String ip=null;

  MulticastSocket multicastSocket=new MulticastSocket(MULTICAST_PORT);

  multicastSocketsetLoopbackMode(true);

  InetAddress group = InetAddressgetByName(GROUP_IP);

  multicastSocketjoinGroup(group);

  DatagramPacket packet=new DatagramPacket(sendData, sendDatalength,group,MULTICAST_PORT);

  for(;;){

  multicastSocketsend(packet);

  Logd(TAG,">>>send packet ok");

  byte[] receiveData=new byte[256];

  packet=new DatagramPacket(receiveData, receiveDatalength);

  multicastSocketreceive(packet);

  String packetIpAddress=packetgetAddress()toString();

  packetIpAddress=packetIpAddresssubstring(1, packetIpAddresslength());

  Logd(TAG,"packet ip address: "+packetIpAddress);

  StringBuilder packetContent=new StringBuilder();

  for(int i=0;i<receiveDatalength;i++){

  if(receiveData[i]==0){

  break;

  }

  packetContentappend((char)receiveData[i]);

  }

  ip=packetContenttoString();

  Logd(TAG,"packet content ip is: "+ip);

  if(ipequals(packetIpAddress)){

  Logd(TAG,"find server ip address: "+ip);

  break;

  }else{

  Logd(TAG,"not find server ip address, continue …");

  try {

  Threadsleep(1000);

  } catch (InterruptedException e) {

  }

  }

  }

  return ip;

  }

  }

媒体服务器是下一代网络的重要设备。该设备在控制设备(软交换设备、应用服务器)的控制下,提供在IP网络上实现各种业务所需的媒体资源功能,包括业务音提供、会议、交互式应答(IVR)、通知、统一消息、高级语音业务等。在应用服务器里,使用MSML(Media Server Markup Language,一种专用于媒体服务器交互的特殊xml)向媒体服务器发送放音等命令。媒体服务器具有很好的可裁剪性,可灵活实现一种或多种功能主要功能DTMF信号的采集与解码录音通知的发送·会议不同编解码算法间的转换·自动语音合成·动态语音播放/录制音信号的产生与发送资源的维护与管理

1 组网需求

Lanswitch1通过接口Vlan-interface 10连接到Multicast Source(组播源);通过接口Vlan-interface 11连接到Lanswitch2;通过接口Vlan-interface 12连接到Lanswitch3。通过运行PIM-DM,在RECEIVER 1、RECEIVER 2与Multicast Source间实现组播。

2 组网图

3 配置步骤

只列出Lanswitch1的配置步骤,Lanswitch2、Lanswitch3类同。

# 启动组播路由协议。

system-view

[H3C] multicast routing-enable

# 在接口上启动IGMP和PIM-DM协议。

[H3C] vlan 10

[H3C-vlan10] port Ethernet 1/0/2 to Ethernet 1/0/3

[H3C-vlan10] quit

[H3C] vlan 11

[H3C-vlan11] port Ethernet 1/0/4 to Ethernet 1/0/5

[H3C-vlan11] quit

[H3C] vlan 12

[H3C-vlan12] port Ethernet 1/0/6 to Ethernet 1/0/7

[H3C-vlan12] quit

[H3C] interface Vlan-interface 10

[H3C-Vlan-interface10] ip address 1111 25525500

[H3C-Vlan-interface10] igmp enable

[H3C-Vlan-interface10] pim dm

[H3C-Vlan-interface10] quit

[H3C] interface Vlan-interface 11

[H3C-Vlan-interface11] ip address 2222 25525500

[H3C-Vlan-interface11] pim dm

[H3C-Vlan-interface11] quit

[H3C] interface Vlan-interface 12

[H3C-Vlan-interface12] ip address 3333 25525500

[H3C-Vlan-interface12] pim dm

一、机顶盒连接上了网络,但是不代表网络是畅通的,如果网络不通就会进不了网站。可以检查机顶盒的网络设置是否正确,一般要设置为自动获取IP地址;其次可以重启一下路由器或者重置路由器解决;如果是外部网络不通则需要通知网络服务商排查故障,确保网络畅通即可。

二、当前访问的网站服务器故障或导致机顶盒不能进入,可以尝试更换其他网站测试一下。

三、机顶盒的系统有问题导致无法进入网站,可以重启一下机顶盒来解决;必要时可以将机顶盒的系统还原为出厂设置状态或者升级到最新版本来解决。

四、机顶盒硬件故障导致无法联网,如网络模块故障、天线故障、主板及其他零部件故障等,建议联系机顶盒的售后服务进行检修即可。

五、打开机顶盒主界面,使用机顶盒的遥控器操作,找到系统设置,找到网络设置,打开后弹出网络账号登录窗口,输入电信分配的机顶盒账号及对应的密码,点击登录。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Android中怎么打开Wifi的组播功能

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情