⑴ android wifi 組播
224.0.0.0~224.0.0.255為預留的組播地址(永久組地址),地址224.0.0.0保留不做分配,其它地址供路由協議使用;
224.0.1.0~224.0.1.255是公用組播地址,可以用於Internet;
224.0.2.0~238.255.255.255為用戶可用的組播地址(臨時組地址),全網范圍內有效
239.0.0.0~239.255.255.255為本地管理組播地址,僅在特定的本地范圍內有效。
把地址改到239.0.0.0~239.255.255.255之間。看看
⑵ android 混淆時怎麼排除友盟推送的包
Android混淆,又稱Android代碼混淆,是伴隨著Android系統的流行而產生的一種AndroidAPP保護技術,用於保護APP不被破解和逆向分析。
友盟(Umeng),2010年4月在北京成立,是中國最專業、最有數據凝聚力的移動開發者服務平台。友盟提供iOS、Android和Windows Phone等多平台服務。
友盟消息推送,指向指定終端用戶(單播)、 所有終端用戶(廣播) 或 滿足特定條件的終端用戶群(組播),發送通知或消息。此外,還支持開發者使用 自有的賬號系統(alias) 來發送消息給指定的賬號或者賬號群。
混淆時排除友盟推送的Jar包,只需要在proguard.cfg文件中加入如下配置即可:
-dontwarn com.umeng.**
-keep class com.umeng*.** {*; }
⑶ Android中怎麼打開Wifi的組播功能
打開Android中Wifi的組播功能。主要有以下幾個步驟:
在Manifest文件中加入:android.permission.CHANGE_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) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
allowMulticast();
try {
NetUtil.findServerIpAddress();
} catch (IOException e) {
throw new RuntimeException(e);
}
Log.d("multicast.demo", "find ip ok.");
multicastLock.release();
}
private void allowMulticast(){
WifiManager wifiManager=(WifiManager)getSystemService(Context.WIFI_SERVICE);
multicastLock=wifiManager.createMulticastLock("multicast.test");
multicastLock.acquire();
}
}
在Activity中打開和釋放組播鎖。使用組播發送報文和接收ip地址信息的工具類代碼:
public class NetUtil {
private static final String TAG="Net.Utils";
private static final int MULTICAST_PORT=5111;
private static final String GROUP_IP="224.5.0.7";
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);
multicastSocket.setLoopbackMode(true);
InetAddress group = InetAddress.getByName(GROUP_IP);
multicastSocket.joinGroup(group);
DatagramPacket packet=new DatagramPacket(sendData, sendData.length,group,MULTICAST_PORT);
for(;;){
multicastSocket.send(packet);
Log.d(TAG,">>>send packet ok");
byte[] receiveData=new byte[256];
packet=new DatagramPacket(receiveData, receiveData.length);
multicastSocket.receive(packet);
String packetIpAddress=packet.getAddress().toString();
packetIpAddress=packetIpAddress.substring(1, packetIpAddress.length());
Log.d(TAG,"packet ip address: "+packetIpAddress);
StringBuilder packetContent=new StringBuilder();
for(int i=0;i<receiveData.length;i++){
if(receiveData[i]==0){
break;
}
packetContent.append((char)receiveData[i]);
}
ip=packetContent.toString();
Log.d(TAG,"packet content ip is: "+ip);
if(ip.equals(packetIpAddress)){
Log.d(TAG,"find server ip address: "+ip);
break;
}else{
Log.d(TAG,"not find server ip address, continue …");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
}
return ip;
}
}
⑷ [Android P] 藍牙mac地址的讀取與修改
藍牙設備地址(BD_ADDR)是一個48bit的唯一標識符,由LAP(24位地址低端部分)、UAP(8位地址高端部分)和NAP(16位無意義地址部分)組成,其格式如下所示:
NAP和UAP是藍牙設備生產廠商的唯一標識碼,由SIG分配給各個廠商;LAP則由廠商自行分配。
其中,bit40為組播地址標志位,其值為0:unicast(單播),其值為1:multicast(組播);bit41為地址類型標志位,其值為0:universal addr,其值為1:local addr。
在函數 BluetoothAddress::GetLocalAddress() 中展示了數種方式讀取藍牙BD_ADDR。
首先函數 fetch_vendor_addr(local_addr) 讀取存儲在vendor下bt_nv.bin文件中的藍牙地址:
其次是從system property中獲取本地藍牙地址路徑:
若以上兩種方法均不能獲得BD_ADDR,則嘗試從factory property中獲取:
再者,若從factory property中也無法獲取到BD_ADDR,可以從之前保存的BDA中查找:
以上方法均無法獲取到固定地址時,則生成隨機地址,其形式為 0x22:22:xx:xx:xx:xx ,然後將之保存在property之中,每次重新開關機後會生成新的隨機地址:
⑸ Android上的實時視頻監控怎麼實現的
1、使用FFMpeg進行視頻採集,使用Live555進行RTP傳輸,使用VideoView進行播放。
csdn提到:重載FrameSource,寫一個服務類,可以從FrameSource的派生類讀取幀數據,轉發給live555.
評價:本方案大型訪問量大的不行,少量連接比如100以內的可以。
2、用gstreamer完成採集、編碼、組播。客戶端使用VideoView進行播放。
評價:本方案優點為可以實現大訪問量。缺點是基本從底層架構,代碼量比較大。
3、使用FFmpeg進行視頻採集,使用ffserver進行視頻轉發,客戶端使用VideoView播放。
評價:優點是實現簡單、容易演示,缺點是實時性不好以及用戶量大不行。
⑹ vlc for android播放組播流 很卡,直接網線連接的。播放rtsp流很流暢,請問是需要調
因為無線不支持組播.
除非ap支持組播否則你肯定會卡,無線的組播是盡力而為的傳輸,沒有保障機制.