ClipboardStatusNotifier.update запускается TextField
Я заметил очень странную ошибку, исходящую от одного из моих пользователей на устройстве Android.
PlatformException(error, UID 10397 does not have permission to content://com.android.chrome.FileProvider/images/screenshot/16135867539687851983769776210385.jpg [user 0], null)
#0 JSONMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:151)
#1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:161)
<asynchronous suspension>
#2 Clipboard.getData (package:flutter/src/services/clipboard.dart:58)
<asynchronous suspension>
#3 ClipboardStatusNotifier.update.<anonymous closure> (package:flutter/src/widgets/text_selection.dart)
<asynchronous suspension>
Похоже, это происходит, когда он использует, скорее всего (просматривая журналы), когда он нажимает кнопку «Поиск» на клавиатуре, то есть запускает
onSubmitted
обратный вызов на. Вот код текстового поля:
TextField(
autofocus: false,
keyboardType: TextInputType.visiblePassword,
decoration: InputDecoration(
border: InputBorder.none,
hintText: ''
),
textInputAction: TextInputAction.search,
controller: model.searchStringController,
onSubmitted: (value){
model.performSearch('SearchTextField');
},
),
model.performSearch()
выполняет поиск в локальной базе данных SQLite, а затем вызывает
notifyListeners
восстановить дерево виджетов. Кажется, что ошибка возникает после завершения обратного вызова, поэтому она может быть связана либо с перестройкой, либо с закрытием экранной клавиатуры.
Я пробовал воспроизвести это, но не могу понять, как это происходит. Кажется, это происходит каждый раз, когда этот пользователь отправляет
TextField
, что приводит к появлению большого количества журналов ошибок.