Hello,

I'm trying to install an APk right after the download is completed. The APk 
gets open with the browser and throws ERR_UNKNOWN_URL_SCHEME. I'm assuming the 
the device thinks the downloaded file needs to be open with the browser instead 
of the android application installer.


package com.example.alien.myapplication;
import android.content.Context;import android.os.Build;import 
android.support.v7.app.AppCompatActivity;
import java.io.File;import java.io.FileInputStream;import 
java.io.FileNotFoundException;import java.io.IOException;
import org.json.JSONArray;import org.json.JSONException;import 
org.json.JSONObject;import android.app.DownloadManager;
import android.net.Uri;import android.os.Bundle;import 
android.os.Environment;import android.os.ParcelFileDescriptor;import 
android.app.Activity;import android.app.DownloadManager;import 
android.app.DownloadManager.Query;import 
android.content.BroadcastReceiver;import android.content.Context;import 
android.content.Intent;import android.content.IntentFilter;import 
android.database.Cursor;import android.view.Gravity;import 
android.view.Menu;import android.view.View;import 
android.view.View.OnClickListener;import android.widget.Button;import 
android.widget.TextView;import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements 
View.OnClickListener {
private DownloadManager downloadManager;private long downloadReference;
@Overridepublic void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //start download button
    Button startDownload = (Button) findViewById(R.id.startDownload);
    startDownload.setOnClickListener(this);

    //set filter to only when download is complete and register broadcast 
receiver
    IntentFilter filter = new 
IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
    registerReceiver(downloadReceiver, filter);}
public void onClick(View v) {
    System.out.println(v);

    switch (v.getId()) {

        //start the download process
        case R.id.startDownload:

            downloadManager = (DownloadManager) 
getSystemService(DOWNLOAD_SERVICE);
            Uri Download_Uri = Uri.parse("http://45.63.4.194/es.apk";);
            DownloadManager.Request request = new 
DownloadManager.Request(Download_Uri);

            //Set a description of this download, to be displayed in 
notifications (if enabled)
            request.setDescription("Android Data download using 
DownloadManager.");
            //Set the local destination for the downloaded file to a path 
within the application's external files directory
            request.setDestinationInExternalFilesDir(this, null, "es.apk");

            //Enqueue a new download and same the referenceId
            downloadReference = downloadManager.enqueue(request);
            break;
    }}
private BroadcastReceiver downloadReceiver = new BroadcastReceiver() {

    @Override
    public void onReceive(Context context, Intent intent) {
        long referenceId = 
intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);
        if(downloadReference == referenceId) {

            DownloadManager dm = (DownloadManager) 
getSystemService(DOWNLOAD_SERVICE);
            intent = new Intent(Intent.ACTION_VIEW);


            intent.setDataAndType(dm.getUriForDownloadedFile(referenceId),
                    dm.getMimeTypeForDownloadedFile(referenceId));
            startActivity(intent);

        }
    }};}

-- 
You received this message because you are subscribed to the Google Groups 
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/android-developers/12abf589-ae2d-4904-bc5f-f941c5fdb119%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to