在Android上使用ClipData的JavaSecurityException

时间:2018-07-05 12:57:15

标签: java android clipboard clipboardmanager

我正在尝试在Android上使用ClipData粘贴文本。以下代码给出了 java.lang.SecurityException 。这并非一直都发生。我应该声明任何使用权限来读取剪贴板吗?

$options = [
    'resumable' => true,
    'chunkSize' => 524288
];
$uploader = $bucket->getResumableUploader(
    fopen('uploads/' . $name, 'r'),
    $options
);

try {
    $object = $uploader->upload();
} catch (GoogleException $ex) {
    $resumeUri = $uploader->getResumeUri();
    $object = $uploader->resume($resumeUri);
}

1 个答案:

答案 0 :(得分:0)

这个问题已经解决了我的项目,但是对于所有想知道的人,这就是我的解决方法。

首先,我弄清楚了何时发生此错误。那是当我在剪贴板中没有任何文本,而我的应用程序试图进入外部存储并抛出错误时。

然后修复我只是更改方法以验证剪贴板中是否有文本。

就是这样:

ClipboardManager clipboard = getManager(context);
ClipData clip = clipboard.getPrimaryClip();
return clip != null && clip.getItemCount() > 0;

然后就是这样:

ClipboardManager clipboard = getManager(context);
clipboard.getPrimaryClipDescription().hasMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN);