Hệ thống điện thoại phiên bản 6 - lich thi dau ngoai hang anh hom nay

/imgposts/90n7njhp.jpg

Tài liệu của Easemob thực sự không đáng tin cậy, cần phải liên tục tìm kiếm các giải pháp. !Tích hợp chức năng trò chuyện Easemob vào Weex Android, trang danh sách cuộc trò chuyện

Hệ thống điện thoại phiên bản 6.0 cần phải yêu cầu quyền hạn động.

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" [tu vi 12 con giap](/blog/minecraft-first-time-experience/)  />

Môi trường Android 6.0 trở lên sẽ bị sập nếu không xử lý đúng cách, vì Google đã thêm tính năng quyền hạn động từ phiên bản 6.0 để tăng cường bảo mật, tức là các thao tác nhạy cảm cần được người dùng chấp thuận. Sao chép thư mục runtimepermissions của ví dụ Easemob vào dự án, sau đó thêm đoạn mã dưới đây vào ConversationListActivity:

/**
     * Yêu cầu tất cả các quyền cần thiết - nguyên tắc là lấy các quyền đã khai báo trong tệp manifest
     */
    PermissionsManager.getInstance().requestAllManifestPermissionsIfNecessary(this, new PermissionsResultAction() {
      @Override
      public void onGranted() {
//       Toast.makeText(MainActivity.this, "Tất cả quyền đã được cấp", Toast.LENGTH_SHORT).show();
      }
      @Override
      public void onDenied(String permission) {
        //Toast.makeText(MainActivity.this, "Quyền " + permission + " đã bị từ chối", Toast.LENGTH_SHORT).show();
      }
    });
conversation.getUserName()

Cần sửa thành:

conversation.conversationId()

Lý do là vì SDK Easemob phiên bản 3.3.3 đã cập nhật tên phương thức, haha...

Liệu có liên quan đến việc layout không có điểm gắn? Đúng vậy.

getSupportFragmentManager().beginTransaction().add(R.id.container, conversationListFragment).commit();

Điều này cho thấy rằng Fragment cần có một điểm gắn tương ứng trong layout.

gói com.alibaba.weex;
import android.content.Intent;
import android.support.v4.app.FragmentActivity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import com.alibaba.weex.runtimepermissions.PermissionsManager;
import com.alibaba.weex.runtimepermissions.PermissionsResultAction;
import com.hyphenate.EMCallBack;
import com.hyphenate.chat.EMClient;
import com.hyphenate.easeui.EaseConstant;
import com.hyphenate.chat.EMConversation;
import com.hyphenate.easeui.ui.EaseConversationListFragment;
public class ConversationListActivity extends FragmentActivity {
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_conversation_list);
    /**
     * Yêu cầu tất cả các quyền cần thiết - nguyên tắc là lấy các quyền đã khai báo trong tệp manifest
     */
    PermissionsManager.getInstance().requestAllManifestPermissionsIfNecessary(this, new PermissionsResultAction() {
      @Override
      public void onGranted() {
//       Toast.makeText(MainActivity.this, "Tất cả quyền đã được cấp", Toast.LENGTH_SHORT).show();
      }
      @Override
      public void onDenied(String permission) {
        //Toast.makeText(MainActivity.this, "Quyền " + permission + " đã bị từ chối", Toast.LENGTH_SHORT).show();
      }
    });
    EMClient.getInstance().login("test1", "123456", new EMCallBack() { // Gọi lại
      @Override
      public void onSuccess() {
        EMClient.getInstance().groupManager().loadAllGroups();
        EMClient.getInstance().chatManager().loadAllConversations();
        Log.d("main", "Đăng nhập vào máy chủ trò chuyện thành công!");
      }
      @Override
      public void onProgress(int progress, String status) {
      }
      @Override
      public void onError(int code, String message) {
        Log.d("main", "Đăng nhập vào máy chủ trò chuyện thất bại!");
      }
    });
    EaseConversationListFragment conversationListFragment = new EaseConversationListFragment();
    getSupportFragmentManager().beginTransaction().add(R.id.container, conversationListFragment).commit();
    conversationListFragment.setConversationListItemClickListener(new EaseConversationListFragment.EaseConversationListItemClickListener() {
      @Override
      public void onListItemClicked(EMConversation conversation) {
        startActivity(new Intent(ConversationListActivity.this, ConversationActivity.class).putExtra(EaseConstant.EXTRA_USER_ID, conversation.conversationId()));
      }
    });
  }
}