Android Виджет - SendIntent не работает (для WhatsApp) - PullRequest
0 голосов
/ 21 апреля 2020

Я хочу создать виджет с изображением, который запускается при нажатии на кнопку Видео-звонок в Whatsapp для контакта

Я начал вчера с android studio. Я классифицировал следующее решение:

  • Создание виджета с ImageView. (сделано)
  • Сделайте ImageView кликабельным и добавьте событие + обработчик. (сделано)
  • Запустите видеовызов WhatsApp: Whatsapp Doku , Stack-Posts Это то, что я положил в событие. Но ничего не работает, возникают следующие ошибки:

Виджет не загружается. Код не компилируется. Я не могу найти ответы на эти две ошибки в следующем fct: // MakeWhatsAppVideoCall () и GetWhatsappID ()

  public void StartVideoCall_onClick(Context context) {
    System.out.println(("Activated"));
    long tempID = GetWhatsAppID("123456789");
    MakeWhatsAppVideoCall(tempID);
  }

  public long GetWhatsAppID(String contactNumber) {
    //String contactNumber = "Your Contact Number"; // to change with real value
    Cursor cursor = **context**.getContentResolver()
     *//Error
      //cannot RESOLVE symbol 'context' <-------------------------
      //*
      .query(
        ContactsContract.Data.CONTENT_URI,
        new String[] {
          ContactsContract.Data._ID
        },
        ContactsContract.RawContacts.ACCOUNT_TYPE + " = 'com.whatsapp' " +
        "AND " + ContactsContract.Data.MIMETYPE + " = 'vnd.android.cursor.item/vnd.com.whatsapp.video.call' " +
        "AND " + ContactsContract.CommonDataKinds.Phone.NUMBER + " LIKE '%" + contactNumber + "%'",
        null,
        ContactsContract.Contacts.DISPLAY_NAME
      );
    if (cursor == null) {
      // throw an exception
    }

    long id = -1;
    while (cursor.moveToNext()) {
      id = cursor.getLong(cursor.getColumnIndex(ContactsContract.Data._ID));
    }

    if (!cursor.isClosed()) {
      cursor.close();
    }
    return id;
  }

  public void MakeWhatsAppVideoCall(long id) {

    Intent c_intent = new Intent();
    c_intent.setAction(Intent.ACTION_VIEW);
    c_intent.setDataAndType(Uri.parse("content://com.android.contacts/data/" + id), "vnd.android.cursor.item/vnd.com.whatsapp.voip.call");
    c_intent.setPackage("com.whatsapp"); //send intent directly
    startActivity(c_intent); //<-------------instance c_intent is underlined!!!!
    *//startActivity doesnt accept c_intent: 
    // Errorcode: method startActivity in class ContextCompat cannot be applied to given types;
    //required: Context,Intent,Bundle
    //found: Intent
    //reason: actual and formal argument lists differ in length*

  }
Коды ошибок: Ошибка

C: \ Users \ xxx \ AndroidStudioProjects \ Start_Video_Call \ app \ src \ main \ java \ com \ example \ start_video_call \ VideoCallWidget. java: 60: ошибка: не удается найти символ Курсор курсора = context.getContentResolver () ^ символ: переменный контекст

C: \ Users \ xxxx \ AndroidStudioProjects \ Start_Video_Call \ app \ src \ main \ java \ com \ example \ start_video_call \ VideoCallWidget. java: 98: ошибка: метод startActivity в классе ContextCompat нельзя применить к данным типам; startActivity (c_intent); ^ требуется: контекст, намерение, пакет найден: намерение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...