2016-04-25 9 views
0

möchte ich apk in meinem Server erhalten, nachdem apk auf AndroidIch benutze DownloadManager.ACTION_DOWNLOAD_COMPLETE aber auftreten ActivityNotFoundException

installieren, aber wenn ich installieren apk es zeigt ActivityNotFoundException.

vielleicht Erlaubnis Problem?

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

dank bitte Rat für mich

eine dieser Quelle

public class MainActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Button btn = (Button) findViewById(R.id.btn); 
     btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       String url = "myserver/apk"; 
       File apkFile = new File("/sdcard/Download/openapk.apk"); 

      Uri mUri = Uri.parse(url); 
      DownloadManager.Request r = new DownloadManager.Request(mUri); 
      r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "openapk.apk"); 
      r.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 
      DownloadManager dm = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); 
      dm.enqueue(r); // 
      } 
     }); 
    } 
private BroadcastReceiver completeReceiver = new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     File apkFile = new File("/sdcard/Download/openapk.apk"); 
     Uri apkUri = Uri.fromFile(apkFile); 
     Intent webIntent = new Intent(Intent.ACTION_VIEW); 
     webIntent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.pacvkage-archive"); 
     webIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(webIntent); //ActivityNotFoundException 
    } 
}; 

@Override 
public void onResume() { 
    super.onResume(); 
    IntentFilter completeFilter = 
      new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE); 
    registerReceiver(completeReceiver, completeFilter); 
} 
} 





FATAL EXCEPTION: main 
                     Process: company.co.kr.urlupdater, PID: 23341 
                     java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.DOWNLOAD_COMPLETE flg=0x10 pkg=company.co.kr.urlupdater (has extras) } in [email protected] 
                      at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:769) 
                      at android.os.Handler.handleCallback(Handler.java:733) 
                      at android.os.Handler.dispatchMessage(Handler.java:95) 
                      at android.os.Looper.loop(Looper.java:136) 
                      at android.app.ActivityThread.main(ActivityThread.java:5001) 
                      at java.lang.reflect.Method.invokeNative(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:515) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
                      at dalvik.system.NativeStart.main(Native Method) 
                     Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///sdcard/Download/openapk.apk typ=application/vnd.android.pacvkage-archive flg=0x10000000 } 
                      at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1632) 
                      at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424) 
                      at android.app.Activity.startActivityForResult(Activity.java:3424) 
                      at android.app.Activity.startActivityForResult(Activity.java:3385) 
                      at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:843) 
                      at android.app.Activity.startActivity(Activity.java:3627) 
                      at android.app.Activity.startActivity(Activity.java:3595) 
                      at company.co.kr.urlupdater.MainActivity$2.onReceive(MainActivity.java:64) 
                      at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:759) 
                      at android.os.Handler.handleCallback(Handler.java:733)  
                      at android.os.Handler.dispatchMessage(Handler.java:95)  
                      at android.os.Looper.loop(Looper.java:136)  
                      at android.app.ActivityThread.main(ActivityThread.java:5001)  
                      at java.lang.reflect.Method.invokeNative(Native Method)  
                      at java.lang.reflect.Method.invoke(Method.java:515)  
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)  
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)  
                      at dalvik.system.NativeStart.main(Native Method)  
+0

Wenn Sie auf Marshmallow entwickeln, ist eine Laufzeitgenehmigung erforderlich .... – Opiatefuchs

+0

könnte es viele Gründe für diesen Fehler geben, könnten Sie Ihr Manifest veröffentlichen? – Opiatefuchs

+0

@Opiatefuchs danke. aber ich benutze kitkat –

Antwort

1

Ich denke, Sie haben einen Tippfehler während Paketnamen Intent Einstellung. Es sollte "application/vnd.android.pa ck alters Archiv" sein. So ist die ganze Linie wäre:

webIntent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive"); 

Das ist, warum Sie ActivityNotFoundException bekommen, weil du falsches Paket geben, und die richtigen Activity nicht gefunden werden kann.

+0

hah. ... eagle-eye rom4ek ..... :) – Opiatefuchs

+0

oh :(...... ich vermisse ... ich pacvkage Befehl .... ich nach Versuch ändern.. Erfolgscode dank! –

Verwandte Themen