導航:首頁 > 操作系統 > androidasmack聊天

androidasmack聊天

發布時間:2022-05-16 05:00:39

A. android端怎麼接收openfire伺服器發送過來的消息

B. Android如何開發即時通訊功能

sdk最簡單,自己搞可以根據XMPP協議,就是其他答案提到的openfire+asmack,但XMPP協議是基於xml的,冗長直接導致費流量費電,可以考慮在傳輸的時候自己加一層二進制協議

C. 如何android studio 導入asmack源碼

在asmack中有兩個非常重要的對象PacketReader和PacketWriter,那麼從類名上看Packet + (Reader/Wirter),而TCP/IP傳輸的數據,叫做Packet(包),asmack使用的是XMPP協議,XMPP簡單講就是使用TCP/IP協議 + XML流協議的組合。所以這個了對象的作用從字面上看應該是,寫包與讀包,作用為從服務端讀寫數據。如何android studio 導入asmack源碼

D. Android 中 實現兩個客戶端通過一個 PC服務端實現兩個客戶端之間的即時通訊怎麼做

擦 就是客戶端可以相互發消息唄…說的好復雜…
你可以用openFire+asmack 開源的 服務端是現成的,android端調用asmack api 即時通訊的基本功能都有 自己google下~

E. 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、微信等第三方社會化分享服務,提高產品推廣效率,幫助產品提高用戶體驗,獲得更多用戶。

F. android當伺服器發來了一條信息怎樣讓它在程序圖標上提示有新信息來了

消息推送可以實現。
所謂的消息推送就是從伺服器端向移動終端發送連接,傳輸一定的信息。比如一些新聞客戶端,每隔一段時間收到一條或者多條通知,這就是從伺服器端傳來的推送消息;還比如常用的一些IM軟體如微信、GTalk等,都具有伺服器推送功能。

推送方法如下:

1)通過SMS進行伺服器端和客戶端的交流通信。

在Android平台上,你可以通過攔截SMS消息並且解析消息內容來了解伺服器的意圖,可以實現完全的實時操作。但是問題是這個方案的成本相對比較高,且依賴於運營商。

2)循環主動定時獲取

這種方法需要客戶端來做一個定時或者周期性的訪問伺服器端介面,以獲得最新的消息。輪詢的頻率太慢可能導致某些消息的延遲,太快則會大量消耗網路帶寬和電池。

3)持久連接

這個方案可以解決由輪詢帶來的性能問題,但是還是會消耗手機的電池。我們需要開一個服務來保持和伺服器端的持久連接(蘋果就和谷歌的C2DM是這種機制)。但是對於Android系統,當系統可用資源較低,系統會強制關閉我們的服務或者是應用,這種情況下連接會強制中斷。(Apple的推送服務之所以工作的很好,是因為每一台手機僅僅保持一個與伺服器之間的連接,事實上C2DM也是這么工作的。即所有的推送服務都是經由一個代理伺服器完成的,這種情況下只需要和一台伺服器保持持久連接即可。C2DM=Cloud
to Device Messaging)。

相比之下第三種還是最可行的。為軟體編寫系統服務或開機啟動功能;或者如果系統資源較低,服務被關閉後可以在onDestroy ()方法裡面再重啟該服務,進而實現持久連接的方式。

C2DM內置於Android的2.2系統上,無法兼容老的1.6到2.1系統;且依賴於Google官方提供的C2DM伺服器,由於國內的網路環境,這個服務經常不可用。

建立在TCP協議之上的XMPP協議,不僅可提供可這種持久連接的功能,能實現伺服器和客戶機的雙工通信,還能不依賴與系統版本和google伺服器的限制,提供了比較好的解決方案。

2. XMPP協議

XMPP全稱Extensible Messaging and Presence
Protocol,前身是Jabber項目,是一種以XML為基礎的開放式即時通訊協議。XMPP因為被Google
Talk和網易泡泡應用而被廣大網民所接觸。XMPP的關鍵特色是,分散式的即時通訊系統,以及使用XML串流。XMPP目前被IETF國際標准組織完成了標准化工作。

Android push notification(androidpn)
是一個基於XMPP協議的java開源實現,它包含了完整的客戶端和伺服器端。該伺服器端基本是在另外一個開源工程openfire基礎上修改實現的。

androidpn客戶端需要用到一個基於java的開源XMPP協議包asmack,這個包同樣也是基於openfire下的另外一個開源項目smack,不過我們不需要自己編譯,可以直接把androidpn客戶端裡面的asmack.jar拿來使用。客戶端利用asmack中提供的XMPPConnection類與伺服器建立持久連接,並通過該連接進行用戶注冊和登錄認證,同樣也是通過這條連接,接收伺服器發送的通知。

androidpn伺服器端也是java語言實現的,基於openfire開源工程,不過它的Web部分採用的是spring框架,這一點與openfire是不同的。Androidpn伺服器包含兩個部分,一個是偵聽在5222埠上的XMPP服務,負責與客戶端的XMPPConnection類進行通信,作用是用戶注冊和身份認證,並發送推送通知消息。另外一部分是Web伺服器,採用一個輕量級的HTTP伺服器,負責接收用戶的Web請求。伺服器的這兩方式,意義非凡:當相應的TCP埠被防火牆封閉,可以使用輪詢的方式進行訪問,因此又有助於通過防火牆。

G. 基於Openfire+XMPP下通過asmack開發Android端的即時通訊APP方法與步奏

有相應的文檔和demo。文檔連接發泥私信了,具體demo其實也有現成的,用到的類有限不是很多。

H. 如何在 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;
}
}

I. android studio怎麼使用asmack.jar

工具/原料

Android Studio
可導入Android Studio的項目一個
方法/步驟

點擊啟動AndroidStudio,啟動後的界面如圖所示。

復制你需要添加的jar,並將其黏貼到app— —src— —main— —libs文件夾下,可運行的AndroidStudio項目都有像這樣的目錄結構。可以看到雖然jar已經復制黏貼過來了,但是還未導入,所以看不到jar中包含的內容。而已導入的jar,則可以看到jar中內容。

右鍵點擊新黏貼的jar,在彈出菜單中點擊Add As Library.

選擇你要導入到的那個mole(在AndroidStudio中相當於Eclipse中的project),如果當前只是一個項目,下拉框中除了app也沒有其他的內容,那麼直接點擊ok確認。

這樣jar就被添加到項目中來了。

J. 有誰知道怎麼用android的xmpp協議實現即時通信

1.com.way.service:這是本應用的最重要的包啦,為了簡單,本應用只用了一個服務,包括登陸、聊天、超時判斷以及連接等等,都是在此處處理。

2.com.way.smack:這里是對asmack第三方包重新包裝的一個工具包,方便本應用直接調用。

3.com.way.activity;理所當然就是所有Activity咯。

4.com.way.app:這里有一個廣播接受者和Application類,主要是用來接受系統廣播,比如說網路連接上或者斷開,開關機等等廣播。

5.com.way.db:沒錯,就是操作資料庫咯,總共是兩個ContentProvider,一個是存儲好友,一個是存儲聊天記錄。

6.其他的一些包大都是控制項或者工具類,為了方便自己下次使用以及大家直接到自己的項目中

閱讀全文

與androidasmack聊天相關的資料

熱點內容
android強制系統橫屏 瀏覽:280
怎麼提前看未播出的電視劇app 瀏覽:664
cad轉pdf圖層 瀏覽:600
程序員接私活初級 瀏覽:433
全無油潤滑壓縮機 瀏覽:185
代碼加密常用方法 瀏覽:952
安卓手機如何解除已禁用 瀏覽:396
演算法的隨機性 瀏覽:485
高中解壓體育游戲 瀏覽:533
androidstudior丟失 瀏覽:345
命令行筆記 瀏覽:738
360目標文件夾訪問拒絕 瀏覽:519
3b編程加工指令 瀏覽:789
c8051f系列單片機選型手冊 瀏覽:773
南昌php程序員 瀏覽:513
bcs命令 瀏覽:447
如何在伺服器指向域名 瀏覽:417
車床編程可以做刀嗎 瀏覽:519
ln命令源碼 瀏覽:793
用粘液做解壓手套 瀏覽:331