2016-04-22 2 views
0

Gibt es eine Methode, um alle Download-Artikel aus dem System Downloadprovider abzufragen, ich mache das so, aber es benötigt die Erlaubnis: android.permission.ACCESS_ALL_DOWNLOADS, und am schlimmsten ist diese Erlaubnis in Signaturebene, die ich nicht bekommen kann Diese Erlaubnis, gibt es andere Lösung, um dies zu tun.Und ich möchte nur eine App entwickeln, um die Downloads des Systems zu managen.Danke viel!Wie Abfrage alle Download-Artikel aus dem System DownloadProvider?

int columnId = c.getColumnIndex(DownloadManager.COLUMN_ID); 
      int columnTitle = c.getColumnIndex(DownloadManager.COLUMN_TITLE); 
      Log.d(TAG, "query complete!-->" + c.getCount()); 
      for (int i = 0; c.getColumnName(i) != null; i++) 
       Log.d(TAG, c.getColumnName(i)); 
      while (c.moveToNext()) { 
       int status = c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS)); 
       long id = c.getLong(c.getColumnIndex(DownloadManager.COLUMN_ID)); 
       String title = c.getString(c.getColumnIndex(DownloadManager.COLUMN_TITLE)); 
       switch (status) { 
       case DownloadManager.STATUS_PAUSED: 
        Log.d(TAG, "query one paused task:" + status + "-" + title + "-" + id); 
        break; 
       case DownloadManager.STATUS_PENDING: 
        Log.d(TAG, "query one pending task:" + status + "-" + title + "-" + id); 
        break; 
       case DownloadManager.STATUS_RUNNING: 
        Log.d(TAG, "query one running task:" + status + "-" + title + "-" + id); 
        break; 
       case DownloadManager.STATUS_SUCCESSFUL: 
        Log.d(TAG, "query one success task:" + status + "-" + title + "-" + id); 
        break; 
       case DownloadManager.STATUS_FAILED: 
        Log.d(TAG, "query one failed task:" + status + "-" + title + "-" + id); 
        // downloadManager.remove(id); 
        break; 
       } 
      } 
+0

Es gibt bereits eine App, um die Downloads des Systems zu verwalten: Download Manager. – ianhanniballake

+0

Ja, es ist.aber ich möchte nur wissen, ob es möglich ist, Inhalte abzufragen: // downloads/all_downloads. – marklion

Antwort

0

Wie Sie entdeckt, ist der einzige Weg, um die content://downloads/all_downloads Uri abzufragen ist mit dem android.permission.ACCESS_ALL_DOWNLOADS, die eine Signaturniveau Erlaubnis ist. Dies ist beabsichtigt und bedeutet, dass es nicht möglich ist, alle Downloads von einer App eines Drittanbieters zu lesen, die nicht mit der Systemsignatur signiert sind.

+0

Alles klar, ich weiß das jetzt ... – marklion

+0

Übrigens, ist das möglich, wenn ich root bin ... wenn Sie wissen ... – marklion

+0

Root erlaubt Ihnen nicht, das Android-Berechtigungssystem zu umgehen - Sie würden brauchen ein benutzerdefiniertes ROM, um zu ändern, wie auf diese APIs zugegriffen wird. – ianhanniballake

Verwandte Themen