當前位置:首頁 » 安卓系統 » androidsmackxmpp

androidsmackxmpp

發布時間: 2022-11-04 01:55:24

⑴ android消息推送怎麼實現

極光推送可以輕松實現android消息推送。具有操作步驟如下:
1、到極光官網注冊賬號:https://www.jpush.cn/
2、創建應用,按照要求填寫你的應用名稱,包名提交
3、下載案例,一般情況測試是能收到信息的
4、集成到自己的項目中,按照官網的集成http://docs.jpush.cn/pages/viewpage.action?pageId=557214
5、集成時將注意的要點,官網上也有說,但是我再強調一下要注意兩個許可權的包名填寫,有可能直接用案例上的拷貝到自己的manifest中時沒有替換掉包名,切記,要替換成自己的項目的包名。
極光推送已經覆蓋了近10億Android、IOS終端,30多萬款APP應用,服務總用戶數超過30億,每天消息推送量達5億多條,已成為移動應用數據平台。極光分享幫助應用具備國內主流社交平台分享功能,提供新浪微博、QQ、微信等第三方社會化分享服務,提高產品推廣效率,幫助產品提高用戶體驗,獲得更多用戶。

⑵ android消息推送GCM、XMPP、MQTT三種方案的優劣是什麼

android消息推送GCM、XMPP、MQTT三種方案的優劣如下:
1、GCM
(1)優點:提供的服務、原生、簡單,無需實現和部署的服務端。
(2)缺點:Android版本限制(必須大於2.2版本),該服務在國內不夠穩定、需要用戶綁定相關的Google帳號,而且只受限於Google。
2、XMPP
(1)優點:成熟、強大、可擴展也性強、目前主要應用於聊天系統中,且已有開源的java版的開發實例androidpn。
(2)缺點:協議較復雜、冗餘(基於XML)、也比較費流量和費電,部署硬體成本高。
3、MQTT
(1)優點:簡潔、小巧、可擴展性強、是比較省流量、省電。目前已有C++版的服務端組件rsmb。
(2)缺點:不夠成熟、實現起來較復雜、服務端組件rsmb不開源,也是部署硬體成本較高。
消息推送軟體可以使用深圳極光的。極光成立於2011年;憑借領先的人工智慧及機器學習技術,極光將在APP消息推送、用戶增長與活躍等方面為客戶提供服務。

⑶ android使用smack要注意什麼

Smack是一個開源、易用的XMPP/Jabber客戶端庫,它使用Java語言開發,由Jive Software...最新的好消息是Smack在4.1.0版後將直接支持Android系統

⑷ 如何在 aSmack xmpp 中創建組 android 嗎

您可以創建用戶組,
public boolean createGroup(XMPPConnection connection,String groupName) {
if (connection == null)
return false;
try {
connection.getRoster().createGroup(groupName);
Log.v("Group created : ", groupName);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

如果你踢在 xmpp 中創建分組聊天再試試下面的方法。(* * 未選中)
public class createMucAT extends AsyncTask<Void, Void, MultiUserChat> {

private RosterGroup group;
private Connection conn;
private String groupId;
private String groupName;

public createMucAT(Connection conn, RosterGroup group, String groupId,
String groupName) {
this.group = group;
this.conn = conn;
this.groupId = groupId;
this.groupName = groupName;

}

@Override
protected MultiUserChat doInBackground(Void... params) {
String groupTag = group.getName();
MultiUserChat chat = null;
try {
chat = createGroupChat(conn, groupId, groupTag, conn.getUser());
} catch (XMPPException e) {
e.printStackTrace();
}
return chat;
}

@Override
protected void onPostExecute(MultiUserChat result) {
super.onPostExecute(result);
//handle the result here
}

private MultiUserChat createGroupChat(Connection conn, String groupId, String groupName, String nickname) throws XMPPException {
MultiUserChat muc = new MultiUserChat(conn, groupId + "@" + ConnectionService.CONFERENCE_IP_ADDRESS);
muc.create(nickname);
Form form = muc.getConfigurationForm();
Form submitForm = form.createAnswerForm();
for (Iterator<FormField> fields = form.getFields(); fields.hasNext();) {
FormField field = (FormField) fields.next();
if (!FormField.TYPE_HIDDEN.equals(field.getType()) && field.getVariable() != null) {
submitForm.setDefaultAnswer(field.getVariable());
}
}
List<String> owners = new ArrayList<String>();
owners.add(ConnectionService.getConnection().getUser().toString());
submitForm.setAnswer("muc#roomconfig_roomowners", owners);
submitForm.setAnswer("muc#roomconfig_persistentroom", true);
submitForm.setAnswer("muc#roomconfig_roomdesc", groupName);
muc.sendConfigurationForm(submitForm);
return muc;
}
}

⑸ Android 基於XMPP Smack Openfire 小結怎麼解決

首先第一、與伺服器建立好連接
關鍵代碼:127.0.0.1為伺服器IP,5222為伺服器埠號

[java] view plain print?
/**
* 連接伺服器
*
* @return
*/
public boolean conServer() {
ConnectionConfiguration config = new ConnectionConfiguration(
127.0.0.1, 5222);
/** 是否啟用安全驗證 */
config.setSASLAuthenticationEnabled(false);
/** 是否啟用調試 */
// config.setDebuggerEnabled(true);
/** 創建connection鏈接 */
try {
connection = new XMPPConnection(config);
/** 建立連接 */
connection.connect();
return true;
} catch (XMPPException e) {
e.printStackTrace();
}
return false;
}

第二、實現注冊

關鍵代碼:
以下代碼注釋都很清楚了,如有不懂的地方可以留言,這里就不多做解釋了。

[java] view plain print?
/**
* 注冊
*
* @param account 注冊帳號
* @param password 注冊密碼
* @return 1、注冊成功 0、伺服器沒有返回結果2、這個賬號已經存在3、注冊失敗
*/
public String regist(String account, String password) {
if (connection == null)
return "0";
Registration reg = new Registration();
reg.setType(IQ.Type.SET);
reg.setTo(ClientConServer.connection.getServiceName());
reg.setUsername(account);// 注意這里createAccount注冊時,參數是username,不是jid,是「@」前面的部分。
reg.setPassword(password);
reg.addAttribute("android", "geolo_createUser_android");// 這邊addAttribute不能為空,否則出錯。所以做個標志是android手機創建的吧!!!!!
PacketFilter filter = new AndFilter(new PacketIDFilter(
reg.getPacketID()), new PacketTypeFilter(IQ.class));
PacketCollector collector = ClientConServer.connection
.createPacketCollector(filter);
ClientConServer.connection.sendPacket(reg);
IQ result = (IQ) collector.nextResult(SmackConfiguration
.getPacketReplyTimeout());
// Stop queuing results
collector.cancel();// 停止請求results(是否成功的結果)
if (result == null) {
Log.e("RegistActivity", "No response from server.");
return "0";
} else if (result.getType() == IQ.Type.RESULT) {
return "1";
} else { // if (result.getType() == IQ.Type.ERROR)
if (result.getError().toString().equalsIgnoreCase("conflict(409)")) {
Log.e("RegistActivity", "IQ.Type.ERROR: "
+ result.getError().toString());
return "2";
} else {
Log.e("RegistActivity", "IQ.Type.ERROR: "
+ result.getError().toString());
return "3";
}
}
}

第三、實現登錄

關鍵代碼: 代碼很簡單不做太多解釋

[java] view plain print?
/**
* 登錄
*
* @param a 登錄帳號
* @param p 登錄密碼
* @return
*/
public boolean login(String a, String p) {
try {
if (connection == null)
return false;
/** 登錄 */
connection.login(a, p);
return true;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}

第四、修改密碼

關鍵代碼:同樣很簡單
[java] view plain print?
/**
* 修改密碼
* @param connection
* @return
*/
public static boolean changePassword(XMPPConnection connection,String pwd)
{
try {
connection.getAccountManager().changePassword(pwd);
return true;
} catch (Exception e) {
return false;
}
}

⑹ Android openfire+smack(如何監聽斷開,監聽不到)

不小心瞄到了 就跟你說下
你說的這個是不需要監聽的 也不叫離線獲取
因為你的好友修改的頭像是保存在伺服器的,他修改他的不關你的事
你只要執行如下操作就可以拿到他修改的頭像了
1、 使用 xmppConnection.getRoster 拿到屬於你好友的那個RosterEntry,這個地方怎麼遍歷我就不說了
2、 使用 vcard.load(xmppConnection, RosterEntry.getUser()); 得到vard對象 vard.getAvarar就是你想要的頭像
只要你在調用這兩部的時候,用戶已經修改了頭像 那你拿到的就是他修改後的頭像。

⑺ Android基於XMPP Smack openfire 開發的聊天室。怎麼讓創建者把聊天室刪除掉

只能告訴你方法了,查看xmpp協議說明

⑻ android中 的xmpp連接伺服器總是出非法狀態異常異常是怎麼回事

04-24 00:51:37.885: W/System.err(329): java.lang.IllegalStateException: Not connected to server.
04-24 00:51:37.885: W/System.err(329): at org.jivesoftware.smack.XMPPConnection.sendPacket(XMPPConnection.java:488)
04-24 00:51:37.885: W/System.err(329): at org.jivesoftware.smack.NonSASLAuthentication.authenticate(NonSASLAuthentication.java:69)
04-24 00:51:37.895: W/System.err(329): at org.jivesoftware.smack.SASLAuthentication.authenticate(SASLAuthentication.java:353)
04-24 00:51:37.895: W/System.err(329): at org.jivesoftware.smack.XMPPConnection.login(XMPPConnection.java:230)
04-24 00:51:37.895: W/System.err(329): at org.jivesoftware.smack.Connection.login(Connection.java:353)
04-24 00:51:37.895: W/System.err(329): at com.wxs.model.User.login(User.java:200)
04-24 00:51:37.895: W/System.err(329): at com.wechat.project.activity.LoginAcitivity$4$1.run(LoginAcitivity.java:78)
04-24 00:51:37.905: W/System.err(329): at java.lang.Thread.run(Thread.java:1096)

⑼ android消息推送GCM、XMPP、MQTT三種方案的優劣,越仔細越好,有具體分析更好!

android消息推送GCM、XMPP、MQTT三種方案的優劣:
1、GCM服務(Google Cloud Messaging)優點:Google提供的服務、原生、簡單,無需實現和部署服務端。缺點:Android版本限制,該服務在國內不夠穩定、需要用戶綁定Google帳號,受限於Google。
2、XMPP協議(Openfire + Spark + Smack)優點:協議成熟、強大、可擴展性強、目前主要應用於許多聊天系統中,且已有開源的Java版的開發實例androidpn。缺點:協議較復雜、冗餘(基於XML)、費流量、費電,部署硬體成本高。
3、MQTT協議優點:協議簡潔、小巧、可擴展性強、省流量、省電,目前已經應用到企業領域,且已有C++版的服務端組件rsmb。缺點:不夠成熟、實現較復雜、服務端組件rsmb不開源,部署硬體成本較高。
d消息推送可以去了解一下極光,極光是個不錯的平台。極光緊密圍繞移動開發者需求,打造的開發者服務平台,可以提供一站式SaaS服務,通過全面覆蓋PC、手機、感測器、無線路由器等多種設備數據,打造全域數據平台。當前,不斷更新的SaaS產品及服務已深受國內百萬開發者的認可和信賴。

⑽ android 用openfire做伺服器,smack來連接怎麼連接不上

給你個例子
連接類
import org.jivesoftware.smack.ConnectionConfiguration;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;

public class Conn {
private static XMPPConnection connection = null ;

public static XMPPConnection getConnection(String domain)
throws XMPPException {
XMPPConnection connection = new XMPPConnection(domain);
connection.connect();
return connection;
}

public static XMPPConnection getConnection(String domain, int port)
throws XMPPException {
if(connection==null){
ConnectionConfiguration config = new ConnectionConfiguration(domain,port);
connection = new XMPPConnection(config);
connection.connect();
}
return connection;
}
}

測試類
import org.jivesoftware.smack.Chat;
import org.jivesoftware.smack.ChatManager;
import org.jivesoftware.smack.ChatManagerListener;
import org.jivesoftware.smack.MessageListener;
import org.jivesoftware.smack.Roster;
import org.jivesoftware.smack.RosterEntry;
import org.jivesoftware.smack.RosterGroup;
import org.jivesoftware.smack.RosterListener;
import org.jivesoftware.smack.XMPPConnection;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Presence;

public class Test2 {

public static boolean LongAccount(XMPPConnection connection,
String username, String password) {
try {
connection.login(username, password);
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}

public static void main(String[] args) throws XMPPException {
XMPPConnection connection = Conn.getConnection("192.168.1.117");
boolean t = LongAccount(connection, "[email protected]", "password");
System.out.println("t login =" + t);
if(t){

ChatManager chatmanager = connection.getChatManager();

//新建一個會話
Chat newChat = chatmanager.createChat("[email protected]", new MessageListener() {
public void processMessage(Chat chat, Message message) {
System.out.println("start me , Received from 【" + message.getFrom() + "】 message: " + message.getBody());
}
});

//發送消息
newChat.sendMessage("我是菜鳥");
}
}
轉載,僅供參考。

熱點內容
安卓咪咕音樂怎麼錄制視頻 發布:2024-05-19 07:56:06 瀏覽:838
如何搞出超大聲的聽聲辨位安卓版 發布:2024-05-19 07:46:21 瀏覽:927
linux安全模式 發布:2024-05-19 07:27:25 瀏覽:176
為什麼安卓手機安裝不了cpk 發布:2024-05-19 07:22:21 瀏覽:313
pythonempty 發布:2024-05-19 07:15:16 瀏覽:930
路由器虛擬伺服器搭建 發布:2024-05-19 07:15:15 瀏覽:999
方舟編譯器何時推送 發布:2024-05-19 07:15:10 瀏覽:599
魔獸世界自動釣魚腳本 發布:2024-05-19 06:43:07 瀏覽:496
cbs加密 發布:2024-05-19 06:29:56 瀏覽:203
ssis存儲過程 發布:2024-05-19 06:21:31 瀏覽:632