Java Code Examples for android.app.DownloadManager#ACTION_DOWNLOAD_COMPLETE

The following examples show how to use android.app.DownloadManager#ACTION_DOWNLOAD_COMPLETE . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: ApplicationManager.java    From product-emm with Apache License 2.0 6 votes vote down vote up
/**
 * Installs an application to the device.
 *
 * @param url - APK Url should be passed in as a String.
 */
public void installApp(String url, String packageName) {
    Toast.makeText(context, "Please wait, Application is being installed.", Toast.LENGTH_LONG).show();
    Preference.putString(context, resources.getString(R.string.current_downloading_app), packageName);
    if (isPackageInstalled(Constants.AGENT_PACKAGE_NAME)) {
        CommonUtils.callAgentApp(context, Constants.Operation.INSTALL_APPLICATION,
                                 url, null);
    } else if (isDownloadManagerAvailable(context)) {
        downloadedAppName = getAppNameFromPackage(packageName);
        IntentFilter filter = new IntentFilter(
                DownloadManager.ACTION_DOWNLOAD_COMPLETE);
        context.registerReceiver(downloadReceiver, filter);
        downloadViaDownloadManager(url, downloadedAppName);
    } else {
        downloadApp(url);
    }
}
 
Example 2
Source File: DownloadService.java    From DownloadManager with Apache License 2.0 6 votes vote down vote up
@Override
public void onReceive(Context context, Intent intent) {
    long downId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
    switch (intent.getAction()) {
        case DownloadManager.ACTION_DOWNLOAD_COMPLETE:
            if (downloadId == downId && downId != -1 && downloadManager != null) {
                Uri downIdUri = downloadManager.getUriForDownloadedFile(downloadId);

                close();

                if (downIdUri != null) {
                    LogUtil.i(TAG, "广播监听下载完成,APK存储路径为 :" + downIdUri.getPath());
                    SPUtil.put(Constant.SP_DOWNLOAD_PATH, downIdUri.getPath());
                    APPUtil.installApk(context, downIdUri);
                }
                if (onProgressListener != null) {
                    onProgressListener.onProgress(UNBIND_SERVICE);
                }
            }
            break;

        default:
            break;
    }
}
 
Example 3
Source File: AdBlocksWebViewActivity.java    From AdBlockedWebView-Android with MIT License 6 votes vote down vote up
@Override
protected void onCreate(Bundle savedInstanceState) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
        getWindow().setStatusBarColor(getIntent().getIntExtra(EXTRA_COLOR, Color.BLACK));
    super.onCreate(savedInstanceState);

    //noinspection ConstantConditions

    IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
    filter.addAction(DownloadManager.ACTION_NOTIFICATION_CLICKED);
    registerReceiver(mDownloadReceiver, filter);

    mUrl = getIntent().getStringExtra(EXTRA_URL);

    setContentView(R.layout.a_web_viewer);
    bindView();

    mPresenter = new WebViewPresenterImpl(this, this);
    mPresenter.validateUrl(mUrl);
}
 
Example 4
Source File: XDownloader.java    From xGetter with Apache License 2.0 5 votes vote down vote up
public void download(XModel xModel){
    try {
        SimpleDateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss", Locale.ENGLISH);
        Date now = new Date();
        String fileName = formatter.format(now) + "_xStreamPlayer.mp4";

        if (!new File(mBaseFolderPath).exists()) {
            new File(mBaseFolderPath).mkdir();
        }
        String mFilePath = "file://" + mBaseFolderPath + fileName;
        Uri downloadUri = Uri.parse(xModel.getUrl());
        mRequest = new DownloadManager.Request(downloadUri);
        mRequest.setDestinationUri(Uri.parse(mFilePath));

        //If google drive you need to set cookie
        if (xModel.getCookie()!=null){
            mRequest.addRequestHeader("cookie", xModel.getCookie());
        }

        mRequest.setMimeType("video/*");
        mRequest.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
        mDownloadedFileID = mDownloadManager.enqueue(mRequest);
        IntentFilter downloaded = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
        activity.registerReceiver(downloadCompletedReceiver, downloaded);
        Toast.makeText(activity, "Starting Download : " + fileName, Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        Intent intent = new Intent();
        intent.setAction(Intent.ACTION_VIEW);
        try {
            intent.setDataAndType(Uri.parse(URLDecoder.decode(xModel.getUrl(), "UTF-8")), "video/mp4");
            activity.startActivity(Intent.createChooser(intent, "Download with..."));
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        }
    }
}
 
Example 5
Source File: DownloadCompleteReceiver.java    From edx-app-android with Apache License 2.0 5 votes vote down vote up
@Override
protected void handleReceive(final Context context, final Intent data) {
    if (data != null && data.getAction() != null) {
        switch (data.getAction()) {
            case DownloadManager.ACTION_DOWNLOAD_COMPLETE:
                handleDownloadCompleteIntent(data);
                break;
            case DownloadManager.ACTION_NOTIFICATION_CLICKED:
                // Open downloads activity
                environment.getRouter().showDownloads(context);
                break;
        }
    }
}
 
Example 6
Source File: MainActivity.java    From mobile-manager-tool with MIT License 5 votes vote down vote up
private void registerReceiver(){
    IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
    registerReceiver(downloadCompleteReceiver, filter);

    IntentFilter filterReceiver = new IntentFilter(ActionManager.ACTION_FILE_CHANGED);
    registerReceiver(fileChangeReceiver, filterReceiver);
}
 
Example 7
Source File: DownloadActionReceiver.java    From rebootmenu with GNU General Public License v3.0 5 votes vote down vote up
@Override
public void onReceive(Context context, Intent intent) {
    String action = Objects.requireNonNull(intent.getAction());
    DebugLog.d(TAG, "onReceive: action=" + action);
    DownloadManager manager = (DownloadManager) Objects.requireNonNull(context.getSystemService(Context.DOWNLOAD_SERVICE));
    long id = ConfigManager.getPrivateLong(context, ConfigManager.LATEST_RELEASE_DOWNLOAD_ID, NULL_DOWNLOAD_ID);
    DebugLog.i(TAG, "id=" + id);
    switch (action) {
        //下载完成自动打开安装
        case DownloadManager.ACTION_DOWNLOAD_COMPLETE:
            if (intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0) == id) {
                DownloadManager.Query query = new DownloadManager.Query();
                query.setFilterById(id);
                Cursor cursor = manager.query(query);
                if (!cursor.moveToFirst()) {
                    DebugLog.e(TAG, "moveToFirst failed!");
                    cursor.close();
                    return;
                }
                String localFilePath = cursor.getString(cursor.getColumnIndex(
                        Build.VERSION.SDK_INT >= Build.VERSION_CODES.N
                                ? DownloadManager.COLUMN_LOCAL_URI : DownloadManager.COLUMN_LOCAL_FILENAME));
                DebugLog.v(TAG, "Download Completed! -> " + localFilePath);
                if (localFilePath.startsWith("file://"))
                    localFilePath = localFilePath.replace("file://", "");
                UIUtils.openFile(context, localFilePath);
                cursor.close();
            }
            break;
        //安装完成自动删除
        case Intent.ACTION_MY_PACKAGE_REPLACED:
            if (id != NULL_DOWNLOAD_ID) {
                DebugLog.i(TAG, "delete dl id:" + id + " ret=" + manager.remove(id));
                ConfigManager.setPrivateLong(context, ConfigManager.LATEST_RELEASE_DOWNLOAD_ID, NULL_DOWNLOAD_ID);
            }
    }
}
 
Example 8
Source File: InstaAdapter.java    From Insta-Downloader with MIT License 5 votes vote down vote up
public InstaAdapter(Context context) {
    this.inContext = context;
    this.media = new ArrayList<>();

    //set filter to only when download is complete and register broadcast receiver
    IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
    inContext.registerReceiver(downloadReceiver, filter);
}
 
Example 9
Source File: ReactNativeDownloadManagerModule.java    From react-native-simple-download-manager with MIT License 5 votes vote down vote up
public ReactNativeDownloadManagerModule(ReactApplicationContext reactContext) {
    super(reactContext);
    downloader = new Downloader(reactContext);
    appDownloads = new LongSparseArray<>();
    IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
    reactContext.registerReceiver(downloadReceiver, filter);
}
 
Example 10
Source File: Downloader.java    From Xposed-SoundCloudDownloader with GNU General Public License v3.0 5 votes vote down vote up
public static void download(DownloadPayload downloadPayload) {
    final File file = new File(downloadPayload.getSaveDirectory(), downloadPayload.getFileName());
    final String filePath = file.getPath();

    XposedBridge.log("[SoundCloud Downloader] Download path: " + filePath);

    if (file.exists()) {
        Toast.makeText(XposedMod.currentActivity, "File already exists!", Toast.LENGTH_SHORT).show();
        return;
    }

    final DownloadManager downloadManager = (DownloadManager) XposedMod.currentActivity.getSystemService(Context.DOWNLOAD_SERVICE);
    final DownloadManager.Request request = new DownloadManager.Request(Uri.parse(downloadPayload.getUrl()));
    final IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);

    request.setTitle(downloadPayload.getTitle());
    request.allowScanningByMediaScanner();
    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
    request.setDestinationUri(Uri.fromFile(file));

    try {
        if (downloadPayload.includeMetadata()) {
            XposedBridge.log("[SoundCloud Downloader] Adding metadata injector...");
            XposedMod.currentActivity.registerReceiver(new MetadataInjector(downloadPayload), filter);
        }

        downloadManager.enqueue(request);
        Toast.makeText(XposedMod.currentActivity, "Downloading...", Toast.LENGTH_SHORT).show();
    } catch (Exception e) {
        XposedBridge.log("[SoundCloud Downloader] Download Error: " + e.getMessage());
        Toast.makeText(XposedMod.currentActivity, "Download failed!", Toast.LENGTH_SHORT).show();
    }
}
 
Example 11
Source File: MainActivity.java    From Rucky with GNU General Public License v3.0 5 votes vote down vote up
@Override
public void onResume()throws NullPointerException {
    super.onResume();
    if (didThemeChange) {
        didThemeChange = false;
        finish();
        startActivity(getIntent());
    }
    IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
    registerReceiver(downloadBR, filter);
    if(updateEnable)
        updater(0);
    permission();
}
 
Example 12
Source File: NetworkingSnippet.java    From mobly-bundled-snippets with Apache License 2.0 4 votes vote down vote up
@Rpc(
        description =
                "Download a file using HTTP. Return content Uri (file remains on device). "
                        + "The Uri should be treated as an opaque handle for further operations.")
public String networkHttpDownload(String url)
        throws IllegalArgumentException, NetworkingSnippetException {

    Uri uri = Uri.parse(url);
    List<String> pathsegments = uri.getPathSegments();
    if (pathsegments.size() < 1) {
        throw new IllegalArgumentException(
                String.format(Locale.US, "The Uri %s does not have a path.", uri.toString()));
    }
    DownloadManager.Request request = new DownloadManager.Request(uri);
    request.setDestinationInExternalPublicDir(
            Environment.DIRECTORY_DOWNLOADS, pathsegments.get(pathsegments.size() - 1));
    mIsDownloadComplete = false;
    mReqid = 0;
    IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
    BroadcastReceiver receiver = new DownloadReceiver();
    mContext.registerReceiver(receiver, filter);
    try {
        mReqid = mDownloadManager.enqueue(request);
        Log.d(
                String.format(
                        Locale.US,
                        "networkHttpDownload download of %s with id %d",
                        url,
                        mReqid));
        if (!Utils.waitUntil(() -> mIsDownloadComplete, 30)) {
            Log.d(
                    String.format(
                            Locale.US, "networkHttpDownload timed out waiting for completion"));
            throw new NetworkingSnippetException("networkHttpDownload timed out.");
        }
    } finally {
        mContext.unregisterReceiver(receiver);
    }
    Uri resp = mDownloadManager.getUriForDownloadedFile(mReqid);
    if (resp != null) {
        Log.d(String.format(Locale.US, "networkHttpDownload completed to %s", resp.toString()));
        mReqid = 0;
        return resp.toString();
    } else {
        Log.d(
                String.format(
                        Locale.US,
                        "networkHttpDownload Failed to download %s",
                        uri.toString()));
        throw new NetworkingSnippetException("networkHttpDownload didn't get downloaded file.");
    }
}
 
Example 13
Source File: SplashActivity.java    From pokemon-go-xposed-mitm with GNU General Public License v3.0 4 votes vote down vote up
private void registerPackageInstallReceiver() {
    receiver = new BroadcastReceiver(){
        public void onReceive(Context context, Intent intent) {
            Log.d("Received intent: " + intent + " (" + intent.getExtras() + ")");
            if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(intent.getAction())) {
                long downloadId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
                if (downloadId == enqueue) {
                    if (localFile.exists()) {
                        return;
                    }
                    Query query = new Query();
                    query.setFilterById(enqueue);
                    DownloadManager dm = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
                    Cursor c = dm.query(query);
                    if (c.moveToFirst()) {
                        hideProgress();
                        int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
                        if (DownloadManager.STATUS_SUCCESSFUL == status) {
                            storeDownload(dm, downloadId);
                            installDownload();
                        } else {
                            int reason = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_REASON));
                            Toast.makeText(context,"Download failed (" + status + "): " + reason, Toast.LENGTH_LONG).show();
                        }
                    } else {
                        Toast.makeText(context,"Download diappeared!", Toast.LENGTH_LONG).show();
                    }
                    c.close();
                }
            } else if (Intent.ACTION_PACKAGE_ADDED.equals(intent.getAction())) {
                if (intent.getData().toString().equals("package:org.ruboto.core")) {
                    Toast.makeText(context,"Ruboto Core is now installed.",Toast.LENGTH_LONG).show();
                    deleteFile(RUBOTO_APK);
                    if (receiver != null) {
                        unregisterReceiver(receiver);
                        receiver = null;
                    }
                    initJRuby(false);
                } else {
                    Toast.makeText(context,"Installed: " + intent.getData().toString(),Toast.LENGTH_LONG).show();
                }
            }
        }
        };
    IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED);
    filter.addDataScheme("package");
    registerReceiver(receiver, filter);
    IntentFilter download_filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
    registerReceiver(receiver, download_filter);
}
 
Example 14
Source File: MainActivity.java    From Rucky with GNU General Public License v3.0 4 votes vote down vote up
void download(Uri uri) {
    AlertDialog.Builder alertBuilder = new AlertDialog.Builder(this);
    alertBuilder.setMessage(getResources().getString(R.string.screen_on))
            .setCancelable(false);
    waitDialog = alertBuilder.create();
    Objects.requireNonNull(waitDialog.getWindow()).setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);
    waitDialog.show();
    File fDel = new File(getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS),"rucky.apk");
    if (fDel.exists()) {
        fDel.delete();
        if(fDel.exists()){
            try {
                fDel.getCanonicalFile().delete();
            } catch (IOException e) {
                e.printStackTrace();
            }
            if(fDel.exists()){
                getApplicationContext().deleteFile(fDel.getName());
            }
        }
    }
    downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE);
    DownloadManager.Request req = new DownloadManager.Request(uri);
    req.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);
    req.setAllowedOverRoaming(true);
    req.setTitle("rucky.apk");
    req.setDestinationInExternalFilesDir(this,Environment.DIRECTORY_DOWNLOADS,"rucky.apk");
    req.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE);
    DownloadManager.Query q = new DownloadManager.Query();
    q.setFilterById(DownloadManager.STATUS_FAILED | DownloadManager.STATUS_SUCCESSFUL | DownloadManager.STATUS_PAUSED | DownloadManager.STATUS_PENDING | DownloadManager.STATUS_RUNNING);
    Cursor c = downloadManager.query(q);
    while (c.moveToNext()) {
        downloadManager.remove(c.getLong(c.getColumnIndex(DownloadManager.COLUMN_ID)));
    }
    downloadRef = downloadManager.enqueue(req);
    IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
    registerReceiver(downloadBR, filter);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
        updateNotify = new Notification.Builder(this, CHANNEL_ID)
                .setContentTitle(getResources().getString(R.string.update_exec))
                .setSmallIcon(R.drawable.ic_notification)
                .setAutoCancel(false)
                .setOngoing(true)
                .build();
    } else {
        updateNotify = new Notification.Builder(this)
                .setContentTitle(getResources().getString(R.string.update_exec))
                .setSmallIcon(R.drawable.ic_notification)
                .setAutoCancel(false)
                .setOngoing(true)
                .build();
    }
    notificationManager.notify(2,updateNotify);
}
 
Example 15
Source File: ApplicationManager.java    From product-emm with Apache License 2.0 4 votes vote down vote up
/**
 * Start app download for install on device.
 *
 * @param url           - APK Url should be passed in as a String.
 * @param operationId   - Id of the operation.
 * @param operationCode - Requested operation code.
 */
public void setupAppDownload(String url, int operationId, String operationCode) {
    Preference.putInt(context, context.getResources().getString(
            R.string.app_install_id), operationId);
    Preference.putString(context, context.getResources().getString(
            R.string.app_install_code), operationCode);

    if (url.contains(Constants.APP_DOWNLOAD_ENDPOINT) && Constants.APP_MANAGER_HOST != null) {
        url = url.substring(url.lastIndexOf("/"), url.length());
        this.appUrl = Constants.APP_MANAGER_HOST + Constants.APP_DOWNLOAD_ENDPOINT + url;
    } else if (url.contains(Constants.APP_DOWNLOAD_ENDPOINT)) {
        url = url.substring(url.lastIndexOf("/"), url.length());
        String ipSaved = Constants.DEFAULT_HOST;
        String prefIP = Preference.getString(context, Constants.PreferenceFlag.IP);
        if (prefIP != null) {
            ipSaved = prefIP;
        }
        ServerConfig utils = new ServerConfig();
        if (ipSaved != null && !ipSaved.isEmpty()) {
            utils.setServerIP(ipSaved);
            this.appUrl = utils.getAPIServerURL(context) + Constants.APP_DOWNLOAD_ENDPOINT + url;
        } else {
            Log.e(TAG, "There is no valid IP to contact the server");
        }
    } else {
        this.appUrl = url;
    }

    Preference.putString(context, context.getResources().getString(
            R.string.app_install_status), context.getResources().getString(
            R.string.app_status_value_download_started));
    if (isDownloadManagerAvailable(context) && !url.contains(Constants.HTTPS_PROTOCOL)) {
        IntentFilter filter = new IntentFilter(
                DownloadManager.ACTION_DOWNLOAD_COMPLETE);
        context.registerReceiver(downloadReceiver, filter);
        removeExistingFile();
        downloadViaDownloadManager(this.appUrl, resources.getString(R.string.download_mgr_download_file_name));
    } else {
        downloadApp(this.appUrl);
    }
}
 
Example 16
Source File: UpdateApkJob.java    From mollyim-android with GNU General Public License v3.0 4 votes vote down vote up
private void handleDownloadNotify(long downloadId) {
  Intent intent = new Intent(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
  intent.putExtra(DownloadManager.EXTRA_DOWNLOAD_ID, downloadId);

  new UpdateApkReadyListener().onReceive(context, intent);
}
 
Example 17
Source File: RxDownloader.java    From RxDownloader with MIT License 4 votes vote down vote up
public RxDownloader(@NonNull Context context) {
    this.context = context.getApplicationContext();
    DownloadStatusReceiver downloadStatusReceiver = new DownloadStatusReceiver();
    IntentFilter intentFilter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
    context.registerReceiver(downloadStatusReceiver, intentFilter);
}
 
Example 18
Source File: UtilsLibrary.java    From MTweaks-KernelAdiutorMOD with GNU General Public License v3.0 3 votes vote down vote up
static void goToUpdate(Context context, UpdateFrom updateFrom, URL url) {

        IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
        context.registerReceiver(downloadReceiver, filter);

        descargar(context, url);

    }