2010-10-14 13 views

Trả lời

11

Smack < 4.1 không hoạt động trên Android, chủ yếu là do API bị thiếu trên Android (ví dụ: hầu hết API javax). Đó là lý do môi trường xây dựng aSmack được sinh ra. Đó là một cách để sửa đổi Smack để nó có thể được sử dụng trên Android.

Bên cạnh nhiều thứ thay đổi thay đổi lớn nhất là

  1. Vô hiệu hóa XMPP SASL phương pháp auth không được hỗ trợ trên Android
  2. Sử dụng hài hòa apache cho SASL thay vì API javax

Hãy chắc chắn rằng để đọc README và và init mã có liên quan trước khi thực hiện bất kỳ hành động nào liên quan đến XMPP.

thông tin có thể tìm thêm @https://github.com/Flowdalic/asmack/wiki/Modifications

+0

nếu bạn không phiền, bạn có thể đưa ra lý do hoặc một số chi tiết về lý do tại sao điều này không xảy ra? Về cơ bản Dalvik có thể chạy mã java chuẩn phải không? –

+0

Cảm ơn rất nhiều! Tôi đã mất một lý do tại sao tôi không thể sử dụng Smack ... Cảm ơn! –

+0

Nếu bạn thấy câu trả lời này hữu ích, thì hãy cân nhắc việc upvoting. – Flow

1

Bạn có thể xem mọi thứ được thực hiện như thế nào trong talkmyphone. Tôi nghĩ rằng họ đang sử dụng smack với android.

+0

IIRC talkmyphone sử dụng bản vá cú đập khá cũ từ đây: http://davanum.wordpress.com/2007/12/31/android-just-use-smack-api -cho-xmpp/với sự khác biệt đó: http://people.apache.org/~dims/android/smack-android.diff – Flow

5

Khi mô tả dự án nêu rõ, ASmack thêm một tập hợp các bản vá vào Smack thông thường. Kiểm tra điều này conversation để biết thêm chi tiết.

Trân trọng.

+0

Điều tôi muốn nói là tôi có mã nguồn cho cả smack và asmack nhưng mã không có bất kỳ sự khác biệt như vậy mà smack không nên làm việc trên android.Which vá hoặc những gì dừng lại smack để được sử dụng trên Android và cho phép asmack để làm việc tốt trên Android? – SPB

1

Nó sửa đổi Smack để cho phép ứng dụng hoạt động trên Android.

Tôi không chắc chắn về những thay đổi đó là gì, ngoại trừ việc thay đổi cơ chế ProviderManager để nó có thể tải tệp XML smack.providers từ một thư mục thân thiện với Android. Theo mặc định, Smack tải thư mục này từ thư mục tài nguyên của riêng nó, không thể truy cập được trong Android.