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입니다. 그러나 연락처 목록에도 없는 동일한 번호로 전화를 겁니다. 무엇을 변경해야 합니까? 미리 감사드립니다
당신은 이미 질문을 게시했고 여기에 답변을 수락했습니다.
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(); } } }
다음은 내가 작동하는 것으로 확인된 내용입니다.
FlutterPhoneDirectCaller.callNumber(randomItem); Android Studio는 '이 표현식에는 'void' 유형이 있으므로 해당 값을 사용할 수 없습니다. 여러 가지 방법을 시도했지만 아무 것도 작동하지 않는 것 같습니다
carry2022-02-15 15:12:14