android.app.DownloadManager#remove ( )源码实例Demo

下面列出了android.app.DownloadManager#remove ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: EdXposedManager   文件: DownloadsUtil.java
private static void removeAllForUrl(Context context, String url) {
    DownloadManager dm = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
    Cursor c = dm.query(new Query());
    int columnId = c.getColumnIndexOrThrow(DownloadManager.COLUMN_ID);
    int columnUri = c.getColumnIndexOrThrow(DownloadManager.COLUMN_URI);

    List<Long> idsList = new ArrayList<>(1);
    while (c.moveToNext()) {
        if (url.equals(c.getString(columnUri)))
            idsList.add(c.getLong(columnId));
    }
    c.close();

    if (idsList.isEmpty())
        return;

    long[] ids = new long[idsList.size()];
    for (int i = 0; i < ids.length; i++)
        ids[i] = idsList.get(i);

    dm.remove(ids);
}
 
源代码2 项目: pokemon-go-xposed-mitm   文件: SplashActivity.java
private void storeDownload(DownloadManager dm, long downloadId) {
    try {
        android.os.ParcelFileDescriptor file = dm.openDownloadedFile(downloadId);
        java.io.InputStream fileStream = new java.io.FileInputStream(file.getFileDescriptor());
        java.io.FileOutputStream fos = openFileOutput(RUBOTO_APK, MODE_WORLD_READABLE);
        byte[] buffer = new byte[1024];
        int length;
        while((length = fileStream.read(buffer)) > 0) {
            fos.write(buffer, 0, length);
        }
        fos.flush();
        fileStream.close();
        fos.close();
        dm.remove(downloadId);
        enqueue = 0;
    } catch (java.io.IOException ioe) {
        Log.e("Exception copying RubotoCore: " + ioe);
        Toast.makeText(this, "Exception copying RubotoCore: " + ioe, Toast.LENGTH_LONG).show();
    }
}
 
源代码3 项目: EdXposedManager   文件: DownloadsUtil.java
public static DownloadInfo getById(Context context, long id) {
    DownloadManager dm = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
    Cursor c = dm.query(new Query().setFilterById(id));
    if (!c.moveToFirst()) {
        c.close();
        return null;
    }

    int columnUri = c.getColumnIndexOrThrow(DownloadManager.COLUMN_URI);
    int columnTitle = c.getColumnIndexOrThrow(DownloadManager.COLUMN_TITLE);
    int columnLastMod = c.getColumnIndexOrThrow(
            DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP);
    int columnLocalUri = c.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_URI);
    int columnStatus = c.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS);
    int columnTotalSize = c.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES);
    int columnBytesDownloaded = c.getColumnIndexOrThrow(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR);
    int columnReason = c.getColumnIndexOrThrow(DownloadManager.COLUMN_REASON);

    int status = c.getInt(columnStatus);
    String localFilename;
    try {
        localFilename = getFilenameFromUri(c.getString(columnLocalUri));
    } catch (UnsupportedOperationException e) {
        Toast.makeText(context, "An error occurred. Restart app and try again.\n" + e.getMessage(), Toast.LENGTH_SHORT).show();
        return null;
    }
    if (status == DownloadManager.STATUS_SUCCESSFUL && !new File(localFilename).isFile()) {
        dm.remove(id);
        c.close();
        return null;
    }

    DownloadInfo info = new DownloadInfo(id, c.getString(columnUri),
            c.getString(columnTitle), c.getLong(columnLastMod),
            localFilename, status,
            c.getInt(columnTotalSize), c.getInt(columnBytesDownloaded),
            c.getInt(columnReason));
    c.close();
    return info;
}
 
源代码4 项目: IdealMedia   文件: PlayerAdapter.java
private static void stopDownload(Context context, TrackViewHolder holder) {
    final DownloadManager manager = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
    manager.remove(holder.track.downloadID);

    holder.track.isDownloadInAction = false;
    holder.downloadProgress.setProgress(0);
    holder.downloadProgress.setVisibility(View.GONE);
}
 
源代码5 项目: uPods-android   文件: DownloadMaster.java
public void cancelDownload(String itemName) {
    DownloadManager downloadManager = (DownloadManager) UpodsApplication.getContext().getSystemService(Context.DOWNLOAD_SERVICE);
    DownloadTask task = getTaskByName(itemName);
    task.progressUpdater = null;
    downloadManager.remove(task.downloadId);
    allTasks.remove(task);
    Logger.printInfo(DM_LOG, "Task for item name: " + itemName + " canceled ");
}
 
源代码6 项目: RxDownloader   文件: RxDownloader.java
@Override
public void onReceive(Context context, Intent intent) {
    long id = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0L);
    PublishSubject<String> publishSubject = subjectMap.get(id);

    if (publishSubject == null)
        return;

    DownloadManager.Query query = new DownloadManager.Query();
    query.setFilterById(id);
    DownloadManager downloadManager = getDownloadManager();
    Cursor cursor = downloadManager.query(query);

    if (!cursor.moveToFirst()) {
        cursor.close();
        downloadManager.remove(id);
        publishSubject.onError(new IllegalStateException("Cursor empty, this shouldn't happened"));
        subjectMap.remove(id);
        return;
    }

    int statusIndex = cursor.getColumnIndex(DownloadManager.COLUMN_STATUS);
    if (DownloadManager.STATUS_SUCCESSFUL != cursor.getInt(statusIndex)) {
        cursor.close();
        downloadManager.remove(id);
        publishSubject.onError(new IllegalStateException("Download Failed"));
        subjectMap.remove(id);
        return;
    }

    int uriIndex = cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI);
    String downloadedPackageUriString = cursor.getString(uriIndex);
    cursor.close();

    publishSubject.onNext(downloadedPackageUriString);
    publishSubject.onComplete();
    subjectMap.remove(id);
}
 
源代码7 项目: delion   文件: OMADownloadHandler.java
@Override
protected void onPostExecute(Boolean success) {
    DownloadManager manager =
            (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
    if (success) {
        String path = mDownloadInfo.getFilePath();
        if (!TextUtils.isEmpty(path)) {
            // Move the downloaded content from the app directory to public directory.
            File fromFile = new File(path);
            String fileName = fromFile.getName();
            File toFile = new File(Environment.getExternalStoragePublicDirectory(
                    Environment.DIRECTORY_DOWNLOADS), fileName);
            if (fromFile.renameTo(toFile)) {
                manager.addCompletedDownload(
                        fileName, mDownloadInfo.getDescription(), false,
                        mDownloadInfo.getMimeType(), toFile.getPath(),
                        mDownloadInfo.getContentLength(), true);
            } else if (fromFile.delete()) {
                Log.w(TAG, "Failed to rename the file.");
                return;
            } else {
                Log.w(TAG, "Failed to rename and delete the file.");
            }
        }
        showNextUrlDialog(mOMAInfo);
    } else if (mDownloadId != DownloadItem.INVALID_DOWNLOAD_ID) {
        // Remove the downloaded content.
        manager.remove(mDownloadId);
    }
}
 
源代码8 项目: AndroidChromium   文件: DownloadManagerService.java
@Override
public Pair<Integer, Boolean> doInBackground(Void...voids) {
    DownloadManager manager =
            (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
    Cursor c = manager.query(new DownloadManager.Query().setFilterById(
            mDownloadItem.getSystemDownloadId()));
    int statusIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
    int reasonIndex = c.getColumnIndex(DownloadManager.COLUMN_REASON);
    int titleIndex = c.getColumnIndex(DownloadManager.COLUMN_TITLE);
    int status = DownloadManager.STATUS_FAILED;
    Boolean canResolve = false;
    if (c.moveToNext()) {
        status = c.getInt(statusIndex);
        String title = c.getString(titleIndex);
        if (mDownloadInfo == null) {
            // Chrome has been killed, reconstruct a DownloadInfo.
            mDownloadInfo = new DownloadInfo.Builder()
                    .setFileName(title)
                    .setDescription(c.getString(
                            c.getColumnIndex(DownloadManager.COLUMN_DESCRIPTION)))
                    .setMimeType(c.getString(
                            c.getColumnIndex(DownloadManager.COLUMN_MEDIA_TYPE)))
                    .setContentLength(Long.parseLong(c.getString(
                            c.getColumnIndex(DownloadManager.COLUMN_TOTAL_SIZE_BYTES))))
                    .build();
        }
        if (status == DownloadManager.STATUS_SUCCESSFUL) {
            mDownloadInfo = DownloadInfo.Builder.fromDownloadInfo(mDownloadInfo)
                    .setFileName(title)
                    .build();
            mDownloadItem.setDownloadInfo(mDownloadInfo);
            canResolve = canResolveDownloadItem(mContext, mDownloadItem, false);
        } else if (status == DownloadManager.STATUS_FAILED) {
            mFailureReason = c.getInt(reasonIndex);
            manager.remove(mDownloadItem.getSystemDownloadId());
        }
    }
    c.close();
    return Pair.create(status, canResolve);
}
 
源代码9 项目: AndroidChromium   文件: OMADownloadHandler.java
@Override
protected void onPostExecute(Boolean success) {
    DownloadManager manager =
            (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
    if (success) {
        String path = mDownloadInfo.getFilePath();
        if (!TextUtils.isEmpty(path)) {
            // Move the downloaded content from the app directory to public directory.
            File fromFile = new File(path);
            String fileName = fromFile.getName();
            File toFile = new File(Environment.getExternalStoragePublicDirectory(
                    Environment.DIRECTORY_DOWNLOADS), fileName);
            if (fromFile.renameTo(toFile)) {
                manager.addCompletedDownload(
                        fileName, mDownloadInfo.getDescription(), false,
                        mDownloadInfo.getMimeType(), toFile.getPath(),
                        mDownloadInfo.getContentLength(), true);
            } else if (fromFile.delete()) {
                Log.w(TAG, "Failed to rename the file.");
                return;
            } else {
                Log.w(TAG, "Failed to rename and delete the file.");
            }
        }
        showNextUrlDialog(mOMAInfo);
    } else if (mDownloadId != DownloadItem.INVALID_DOWNLOAD_ID) {
        // Remove the downloaded content.
        manager.remove(mDownloadId);
    }
}
 
源代码10 项目: AndroidChromium   文件: DownloadManagerDelegate.java
/**
 * Removes a download from Android DownloadManager.
 * @param downloadGuid The GUID of the download.
 */
void removeCompletedDownload(String downloadGuid) {
    long downloadId = removeDownloadIdMapping(downloadGuid);
    if (downloadId != INVALID_SYSTEM_DOWNLOAD_ID) {
        DownloadManager manager =
                (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
        manager.remove(downloadId);
    }
}
 
源代码11 项目: nono-android   文件: DownloadReceiver.java
@Override
public void onReceive(Context context, Intent intent) {

    DownloadManager manager = (DownloadManager)context.getSystemService(Context.DOWNLOAD_SERVICE);
    if(DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(intent.getAction())){
        DownloadManager.Query query = new DownloadManager.Query();
        //在广播中取出下载任务的id
        long id = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
        query.setFilterById(id);
        Cursor c = manager.query(query);
        if(c.moveToFirst()) {
            //获取文件下载路径
            String filename = c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME));
            //如果文件名不为空,说明已经存在了,拿到文件名想干嘛都好
            if(filename != null){
                File file  = new File(filename);
                Intent anotherIntent = new Intent();
                anotherIntent.addFlags(anotherIntent.FLAG_ACTIVITY_NEW_TASK);
                anotherIntent.setAction(android.content.Intent.ACTION_VIEW);
                anotherIntent.setDataAndType(Uri.fromFile(file),
                        "application/vnd.android.package-archive");
                context.startActivity(anotherIntent);
            }
        }
    }else if(DownloadManager.ACTION_NOTIFICATION_CLICKED.equals(intent.getAction())){
        long[] ids = intent.getLongArrayExtra(DownloadManager.EXTRA_NOTIFICATION_CLICK_DOWNLOAD_IDS);
        //点击通知栏取消下载
        manager.remove(ids);
        //ShowToastUtil.showShortToast(context, "已经取消下载");
    }

}
 
源代码12 项目: 365browser   文件: OMADownloadHandler.java
@Override
protected void onPostExecute(Boolean success) {
    DownloadManager manager =
            (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
    if (success) {
        String path = mDownloadInfo.getFilePath();
        if (!TextUtils.isEmpty(path)) {
            // Move the downloaded content from the app directory to public directory.
            File fromFile = new File(path);
            String fileName = fromFile.getName();
            File toFile = new File(Environment.getExternalStoragePublicDirectory(
                    Environment.DIRECTORY_DOWNLOADS), fileName);
            if (fromFile.renameTo(toFile)) {
                manager.addCompletedDownload(
                        fileName, mDownloadInfo.getDescription(), false,
                        mDownloadInfo.getMimeType(), toFile.getPath(),
                        mDownloadInfo.getBytesReceived(), true);
            } else if (fromFile.delete()) {
                Log.w(TAG, "Failed to rename the file.");
                return;
            } else {
                Log.w(TAG, "Failed to rename and delete the file.");
            }
        }
        showNextUrlDialog(mOMAInfo);
    } else if (mDownloadId != DownloadItem.INVALID_DOWNLOAD_ID) {
        // Remove the downloaded content.
        manager.remove(mDownloadId);
    }
}
 
源代码13 项目: 365browser   文件: DownloadManagerDelegate.java
/**
 * Removes a download from Android DownloadManager.
 * @param downloadGuid The GUID of the download.
 */
void removeCompletedDownload(String downloadGuid) {
    long downloadId = removeDownloadIdMapping(downloadGuid);
    if (downloadId != INVALID_SYSTEM_DOWNLOAD_ID) {
        DownloadManager manager =
                (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
        manager.remove(downloadId);
    }
}
 
源代码14 项目: ApkTrack   文件: InstalledApp.java
/**
 * Deletes the APK which may have been downloaded by the app.
 * @param ctx The context of the application.
 */
public void clean_downloads(Context ctx)
{
    if (get_download_id() == 0) {
        return;
    }

    DownloadManager dm = (DownloadManager) ctx.getSystemService(Context.DOWNLOAD_SERVICE);
    dm.remove(get_download_id());
    set_download_id(0);
    save();
    Log.v(MainActivity.TAG, get_display_name() + "'s APK cleaned.");
}
 
源代码15 项目: EdXposedManager   文件: DownloadsUtil.java
private static List<DownloadInfo> getAllForUrl(Context context, String url) {
    DownloadManager dm = (DownloadManager) context
            .getSystemService(Context.DOWNLOAD_SERVICE);
    Cursor c = dm.query(new Query());
    int columnId = c.getColumnIndexOrThrow(DownloadManager.COLUMN_ID);
    int columnUri = c.getColumnIndexOrThrow(DownloadManager.COLUMN_URI);
    int columnTitle = c.getColumnIndexOrThrow(DownloadManager.COLUMN_TITLE);
    int columnLastMod = c.getColumnIndexOrThrow(
            DownloadManager.COLUMN_LAST_MODIFIED_TIMESTAMP);
    int columnLocalUri = c.getColumnIndexOrThrow(DownloadManager.COLUMN_LOCAL_URI);
    int columnStatus = c.getColumnIndexOrThrow(DownloadManager.COLUMN_STATUS);
    int columnTotalSize = c.getColumnIndexOrThrow(DownloadManager.COLUMN_TOTAL_SIZE_BYTES);
    int columnBytesDownloaded = c.getColumnIndexOrThrow(DownloadManager.COLUMN_BYTES_DOWNLOADED_SO_FAR);
    int columnReason = c.getColumnIndexOrThrow(DownloadManager.COLUMN_REASON);

    List<DownloadInfo> downloads = new ArrayList<>();
    while (c.moveToNext()) {
        if (!url.equals(c.getString(columnUri)))
            continue;

        int status = c.getInt(columnStatus);
        String localFilename;
        try {
            localFilename = getFilenameFromUri(c.getString(columnLocalUri));
        } catch (UnsupportedOperationException e) {
            Toast.makeText(context, "An error occurred. Restart app and try again.\n" + e.getMessage(), Toast.LENGTH_SHORT).show();
            return null;
        }
        if (status == DownloadManager.STATUS_SUCCESSFUL && !new File(localFilename).isFile()) {
            dm.remove(c.getLong(columnId));
            continue;
        }

        downloads.add(new DownloadInfo(c.getLong(columnId),
                c.getString(columnUri), c.getString(columnTitle),
                c.getLong(columnLastMod), localFilename,
                status, c.getInt(columnTotalSize),
                c.getInt(columnBytesDownloaded), c.getInt(columnReason)));
    }
    c.close();

    Collections.sort(downloads);
    return downloads;
}
 
源代码16 项目: EdXposedManager   文件: DownloadsUtil.java
public static void removeById(Context context, long id) {
    DownloadManager dm = (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
    dm.remove(id);
}
 
源代码17 项目: WayHoo   文件: DownloadNewVersionJob.java
@Override
public Void run(JobContext jc) {
	try {
		if (checkDownloadRunning())
			return null;
		if (checkApkExist()) {
			Intent installApkIntent = new Intent();
			installApkIntent.setAction(Intent.ACTION_VIEW);
			installApkIntent.setDataAndType(
					Uri.parse(Preferences.getDownloadPath(mContext)),
					"application/vnd.android.package-archive");
			installApkIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
					| Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
			mContext.startActivity(installApkIntent);
		} else {
			String apkName = mContext.getPackageName()
					+ System.currentTimeMillis() + Constants.APK_SUFFIX;
			// 系统下载程序
			final DownloadManager downloadManager = (DownloadManager) mContext
					.getSystemService(mContext.DOWNLOAD_SERVICE);

			Long recommendedMaxBytes = DownloadManager
					.getRecommendedMaxBytesOverMobile(mContext);

			// 可以在移动网络下下载
			if (recommendedMaxBytes == null
					|| recommendedMaxBytes.longValue() > MAX_ALLOWED_DOWNLOAD_BYTES_BY_MOBILE) {
				allowMobileDownload = true;
			}

			Uri uri = Uri.parse(mUpgradeInfo.getUrl());

			final Request request = new Request(uri);

			request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
			request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);

			int NETWORK_TYPE = DownloadManager.Request.NETWORK_WIFI;
			if (allowMobileDownload) {
				NETWORK_TYPE |= DownloadManager.Request.NETWORK_MOBILE;
			}
			request.setAllowedNetworkTypes(NETWORK_TYPE);
			request.allowScanningByMediaScanner();
			request.setShowRunningNotification(true);
			request.setVisibleInDownloadsUi(true);
			request.setDestinationInExternalPublicDir(
					Environment.DIRECTORY_DOWNLOADS, apkName);
			PackageManager packageManager = mContext.getPackageManager();
			ApplicationInfo applicationInfo = packageManager
					.getApplicationInfo(mContext.getPackageName(), 0);
			Log.i("liweiping",
					"appName = "
							+ packageManager
									.getApplicationLabel(applicationInfo));
			request.setTitle(packageManager
					.getApplicationLabel(applicationInfo));
			request.setMimeType("application/vnd.android.package-archive");

			// id 保存起来跟之后的广播接收器作对比
			long id = downloadManager.enqueue(request);

			long oldId = Preferences.getDownloadId(mContext);
			if (oldId != -1) {
				downloadManager.remove(oldId);
			}

			Preferences.removeAll(mContext);
			Preferences.setDownloadId(mContext, id);
			Preferences.setUpgradeInfo(mContext, mUpgradeInfo);
			Preferences.setDownloadStatus(mContext,
					Constants.DOWNLOAD_STATUS_RUNNING);
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
	return null;
}
 
@Nullable
@Override
protected DownloadInfoUpdate doInBackground(Void... voids) {
    //Convert Long[] to long[]

    while (true) {

        DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
        DownloadManager.Query BooksDownloadQuery = new DownloadManager.Query();

        BooksDownloadQuery.setFilterByStatus(DownloadManager.STATUS_RUNNING |
                DownloadManager.STATUS_PAUSED |
                DownloadManager.STATUS_PENDING);

        //Query the download manager about downloads that have been requested.
        Cursor cursor = downloadManager.query(BooksDownloadQuery);
        int progressingDownloadCount = cursor.getCount();

        List<DownloadInfo> progressDownloadInfo = new ArrayList<>();
        if (progressingDownloadCount != 0) {
            for (int i = 0; i < progressingDownloadCount; i++) {
                cursor.moveToPosition(i);
                DownloadInfo downloadInfo = new DownloadInfo(cursor);
                progressDownloadInfo.add(i, downloadInfo);
                Log.d("download_iter", downloadInfo.toString());
            }
            Collections.sort(progressDownloadInfo, (o1, o2) -> {
                if (o1.getProgressPercent() != 0 && o2.getProgressPercent() != 0) {
                    return o1.compareTo(o2);
                } else if (o1.getProgressPercent() != 0 && o2.getProgressPercent() == 0) {
                    return -1;

                } else if (o1.getProgressPercent() == 0 && o2.getProgressPercent() != 0) {
                    return 1;

                } else //(o1.getProgressPercent() == 0 && o2.getProgressPercent() == 0)
                {
                    return o1.compareTo(o2);
                }

            });
        }
        DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(
                new DownloadInfo.DownloadInfoDiffCallback(mOldDownloadList, progressDownloadInfo));
        mOldDownloadList = progressDownloadInfo;
        cursor.close();


        if (progressingDownloadCount != 0) {
            publishProgress(new DownloadInfoUpdate(progressDownloadInfo, diffResult));
        } else {
            return new DownloadInfoUpdate(progressDownloadInfo, diffResult);
        }

        if (isCancelled()) {
            publishProgress(new DownloadInfoUpdate(DownloadInfoUpdate.TYPE_CANCEL));
            DownloadManager.Query non_complete_query = new DownloadManager.Query();
            non_complete_query.setFilterByStatus(DownloadManager.STATUS_FAILED |
                    DownloadManager.STATUS_PENDING |
                    DownloadManager.STATUS_RUNNING);
            Cursor c = downloadManager.query(non_complete_query);
            int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_ID);
            //TODO this loop may cause problems if a download completed and the broadcast is triggered before we cancel it
            while (c.moveToNext()) {
                long enquId = c.getLong(columnIndex);
                downloadManager.remove(enquId);
            }
            DownloadProgressActivity.this.cancelMultipleDownloads(c, columnIndex);
            Intent localIntent =
                    new Intent(BROADCAST_ACTION)
                            .putExtra(EXTRA_NOTIFY_WITHOUT_BOOK_ID, true);
            DownloadProgressActivity.this.sendOrderedBroadcast(localIntent, null);
            c.close();

            return null;
        }
        try {
            Thread.sleep(40);
        } catch (InterruptedException e) {
            Timber.e(e);
        }
    }
}
 
源代码19 项目: TvPlayer   文件: UpdateAppReceiver.java
@Override
public void onReceive(Context context, Intent intent) {
    // 处理下载完成
    Cursor c = null;

    if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(intent.getAction())) {
        if (DownloadAppUtils.downloadUpdateApkId >= 0) {
            long downloadId = DownloadAppUtils.downloadUpdateApkId;
            DownloadManager.Query query = new DownloadManager.Query();
            query.setFilterById(downloadId);
            DownloadManager downloadManager = (DownloadManager) context
                    .getSystemService(Context.DOWNLOAD_SERVICE);
            c = downloadManager.query(query);
            if (c.moveToFirst()) {
                int status = c.getInt(c
                        .getColumnIndex(DownloadManager.COLUMN_STATUS));
                if (status == DownloadManager.STATUS_FAILED) {
                    downloadManager.remove(downloadId);

                } else if (status == DownloadManager.STATUS_SUCCESSFUL) {
                    if (DownloadAppUtils.downloadUpdateApkFilePath != null) {
                        Intent i = new Intent(Intent.ACTION_VIEW);
                        File apkFile = new File(DownloadAppUtils.downloadUpdateApkFilePath);
                        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
                            i.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                            Uri contentUri = FileProvider.getUriForFile(
                                    context, context.getPackageName() + ".fileprovider", apkFile);
                            i.setDataAndType(contentUri, "application/vnd.android.package-archive");
                        } else {
                            i.setDataAndType(Uri.fromFile(apkFile),
                                    "application/vnd.android.package-archive");
                        }
                        i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                        context.startActivity(i);
                    }
                }
            }
            c.close();
        }
    }


}
 
源代码20 项目: 365browser   文件: OMADownloadHandler.java
@Override
public Pair<Integer, Boolean> doInBackground(Void... voids) {
    DownloadManager manager =
            (DownloadManager) mContext.getSystemService(Context.DOWNLOAD_SERVICE);
    Cursor c = manager.query(
            new DownloadManager.Query().setFilterById(mDownloadItem.getSystemDownloadId()));
    int statusIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
    int reasonIndex = c.getColumnIndex(DownloadManager.COLUMN_REASON);
    int titleIndex = c.getColumnIndex(DownloadManager.COLUMN_TITLE);
    int status = DownloadManager.STATUS_FAILED;
    Boolean canResolve = false;
    if (c.moveToNext()) {
        status = c.getInt(statusIndex);
        String title = c.getString(titleIndex);
        if (mDownloadInfo == null) {
            // Chrome has been killed, reconstruct a DownloadInfo.
            mDownloadInfo =
                    new DownloadInfo.Builder()
                            .setFileName(title)
                            .setDescription(c.getString(
                                    c.getColumnIndex(DownloadManager.COLUMN_DESCRIPTION)))
                            .setMimeType(c.getString(
                                    c.getColumnIndex(DownloadManager.COLUMN_MEDIA_TYPE)))
                            .setBytesReceived(Long.parseLong(c.getString(c.getColumnIndex(
                                    DownloadManager.COLUMN_TOTAL_SIZE_BYTES))))
                            .build();
        }
        if (status == DownloadManager.STATUS_SUCCESSFUL) {
            mDownloadInfo = DownloadInfo.Builder.fromDownloadInfo(mDownloadInfo)
                                    .setFileName(title)
                                    .build();
            mDownloadItem.setDownloadInfo(mDownloadInfo);
            canResolve = DownloadManagerService.canResolveDownloadItem(
                    mContext, mDownloadItem, false);
        } else if (status == DownloadManager.STATUS_FAILED) {
            mFailureReason = c.getInt(reasonIndex);
            manager.remove(mDownloadItem.getSystemDownloadId());
        }
    }
    c.close();
    return Pair.create(status, canResolve);
}