2016-09-19 1 views
1

Ich möchte den Empfänger für die automatische Aktualisierung verwenden.Wie kann ich Receiver in Android einstellen?

Wenn Sie klicken, erhalten Sie Download mit dem URI.

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(strUrl)); 
startActivity(intent); 

Und was ich will, ist die apk, die von der Absicht automatisch heruntergeladen wird.

Nun muss ich nach dem Download noch einmal auf die apk-Datei klicken. aber ich möchte automatisch herunterladen - neue Apk ausführen - APK-Datei löschen.

Also ich versuche, Empfänger zu verwenden, aber ich weiß nicht, wie man es benutzt.

1. Ich habe dies in Manifest hinzugefügt.

<receiver android:name=".common.PackageReceiver" > 
    <intent-filter> 
     <action android:name="android.intent.action.PACKAGE_ADDED" /> 
     <action android:name="android.intent.action.PACKAGE_REMOVED" /> 
     <action android:name="android.intent.action.PACKAGE_REPLACED" /> 
     <action android:name="android.intent.action.DOWNLOAD_COMPLETE" /> 
     <data android:scheme="package" /> 
    </intent-filter> 
</receiver> 

2. mache ich neue Klasse.

package com.ezcaretech.ecf.common; 
public class PackageReceiver extends BroadcastReceiver { 

public static final String DOWNLOAD_COMPLETE = "android.intent.action.DOWNLOAD_COMPLETE"; 

@Override 
public void onReceive(Context context, Intent intent) { 
    String packageName = intent.getData().getSchemeSpecificPart(); 
    String action = intent.getAction(); 

    if (action.equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)) { 
     Log.d("TAG", "DOWNLOAD COMPLETE"); 
    } 
    } 
} 

Aber nach dem Download funktioniert der Empfänger nicht mehr.

Dank

+0

Es kann hilfreich für Sie es überprüfen

+1

Post Download-Manager Code –

+0

Sie haben PackageReceiver.DOWNLOAD_COMPLETE und DownloadManager.ACTION_DOWNLOAD_COMPLETE, welchen verwenden Sie? – HendraWD

Antwort

0

Sie haben registriert statisch den BroadcastReceiver die, dass Ihre App gestartet wird gewährleistet, wenn eine dieser Absichten Sie gesendet geschrieben.

jedoch Ihr Receiver nur tut etwas, wenn es

DownloadManager.ACTION_DOWNLOAD_COMPLETE

+0

Ja genau! Vielen Dank – Adrian

0

Jungs Dank bekommt. Ich ändere meinen Code

builder.setPositiveButton(R.string.kor_confirm, new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int whichButton) { 
      DownloadManager dm= (DownloadManager) getSystemService(DOWNLOAD_SERVICE); 
      DownloadManager.Request request = new DownloadManager.Request(Uri.parse(strUrl)); 
      dm.enqueue(request); 
     } 
    });` 

und es funktioniert gut. Alle Dank

Verwandte Themen