gpt4 book ai didi

Android DownloadManager 在完成下载时处理通知单击事件

转载 作者:行者123 更新时间:2023-11-29 00:11:52 25 4
gpt4 key购买 nike

我在尝试处理下载的 .mp3 文件的通知点​​击事件时遇到问题。我已经注册了以下内容:

  • DownloadManager.ACTION_NOTIFICATION_CLICKED - 我仅在单击当前正在下载(仍在运行)的通知项时从广播接收器获得回调。
  • DownloadManager.ACTION_DOWNLOAD_COMPLETE - 下载完成时我收到回调

问题是,当我点击一个已完成 下载时,我会得到一个可以处理该下载 .mp3 文件(如 VLC)的应用程序列表。

有没有办法限制通知项的点击,使其仅由我的应用程序处理?顺便说一句,我的应用程序甚至没有显示在列表中。

附言如果解决方案不涉及必须创建我的自定义通知处理,那就太好了。

编辑 1:下面是开始下载的代码:

private void downloadRequest(int position, String url, String title, String description, String filename) {

DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url));
request.setDescription(description);
request.setTitle(title);
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);

try {
request.setDestinationUri(Uri.fromFile(new File(FileUtils.getAudioDirectory(getActivity()) + filename)));
} catch (IOException e) {
e.printStackTrace();
}

enqueue = mDownloadManager.enqueue(request);

根据 matty357 的要求,这是我的通知点击广播接收器:

private BroadcastReceiver receiverNotificationClicked = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String extraId = DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS;
long[] references = intent.getLongArrayExtra(extraId);
for(long reference : references) {
AppLog.d("DOWNLOAD_MANAGER", "reference (clicked): " + reference);
}
AppLog.d("DOWNLOAD_MANAGER", "Received click");
}
};

最佳答案

解决办法是:

request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE);

因此当下载完成时您不会收到通知。并且:

context.registerReceiver(onComplete,
new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));

这样您就可以在下载完成时发出通知。

BroadcastReceiver onComplete=new BroadcastReceiver() {
public void onReceive(Context ctxt, Intent intent) {
Log.d(TAG,"onComplete");
// AND HERE SET YOUR ONW NOTIFICATION WHICH YOU WILL ABLE TO HANDLE
}
};

关于Android DownloadManager 在完成下载时处理通知单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29654725/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com