>source

import 'package:flutter_phone_direct_caller/flutter_phone_direct_caller.dart';
import 'package:contacts_service/contacts_service.dart';
void checkContactPermission() async {
  var status= await Permission.contacts.status;
  var contacts= ContactsService.getContacts();
  var list= [contacts];
  var randomItem= (list.shuffle());
  if (status.isGranted) {
    FlutterPhoneDirectCaller.callNumber('randomItem');
  }
  if (!status.isGranted) {
    PermissionStatus permissionStatus= await Permission.contacts.request();
    if (status.isDenied) {
      PermissionStatus permissionStatus= await Permission.contacts.request();
    }
  }
}

연락처 목록에서 무작위로 선택된 번호로 전화를 걸기 위한 code입니다. 그러나 연락처 목록에도 없는 동일한 번호로 전화를 겁니다. 무엇을 변경해야 합니까? 미리 감사드립니다

FlutterPhoneDirectCaller.callNumber(randomItem); Android Studio는 '이 표현식에는 'void' 유형이 있으므로 해당 값을 사용할 수 없습니다. 여러 가지 방법을 시도했지만 아무 것도 작동하지 않는 것 같습니다

carry2022-02-15 15:12:14

당신은 이미 질문을 게시했고 여기에 답변을 수락했습니다.

gretal2022-02-15 15:12:14

나는 그것을 시도하고 그것이 작동하는 것처럼 보이지만 연락처 목록에서 임의의 번호를 선택할 수 없었습니다. 두 번째 질문 죄송합니다. 누군가가 질문에 답하면 나는 그것을 삭제할 자격이 없습니다.

carry2022-02-15 15:12:14
  • 답변 # 1

    Flutter의 dart:math 패키지를 사용하여 1과 contactList 크기 사이의 임의의 숫자를 생성한 다음 생성된 임의의 인덱스로 임의의 연락처를 호출하면 됩니다.

    import 'dart:math';
    getRandomContact(List<Contact> contactsList){
       var random= new Random();
       var randomContactIndex= random.nextInt(contactsList.length);
       return contactsList[randomContactIndex];
    }
    

    다음과 같이 호출할 수 있습니다.

    Contact randomContact= getRandomContact(contactsList);
    

  • 답변 # 2

    Future<void> checkContactPermission() async {
      var status= await Permission.contacts.status;
      if (status.isGranted) {
        var contacts= await ContactsService.getContacts();
        var list= contacts;
        list.shuffle();
        var randomItem= (list.first.phones?.first.value);
        await FlutterPhoneDirectCaller.callNumber('$randomItem');
      }
      if (!status.isGranted) {
        PermissionStatus permissionStatus= await Permission.contacts.request();
        if (status.isDenied) {
          PermissionStatus permissionStatus= await Permission.contacts.request();
          }
        }
      }
    

    다음은 내가 작동하는 것으로 확인된 내용입니다.

  • 이전 Git: 재생을 위한 첫 번째 되감기 헤드