DropBoxManager
  public
  
  
  
  class
  DropBoxManager
  
    extends Object
  
  
  
  
  
  
| java.lang.Object | |
| ↳ | android.os.DropBoxManager | 
Enqueues chunks of data (from various sources -- application crashes, kernel log records, etc.). The queue is size bounded and will drop old data if the enqueued data exceeds the maximum size. You can think of this as a persistent, system-wide, blob-oriented "logcat".
DropBoxManager entries are not sent anywhere directly, but other system services and debugging tools may scan and upload entries for processing.
Summary
Nested classes | |
|---|---|
        
        
        
        
        class | 
      
        DropBoxManager.Entry
        A single entry retrieved from the drop box.  | 
    
Constants | |
|---|---|
String | 
        
          ACTION_DROPBOX_ENTRY_ADDED
          Broadcast Action: This is broadcast when a new entry is added in the dropbox.  | 
    
String | 
        
          EXTRA_DROPPED_COUNT
          Extra for   | 
    
String | 
        
          EXTRA_TAG
          Extra for   | 
    
String | 
        
          EXTRA_TIME
          Extra for   | 
    
int | 
        
          IS_EMPTY
          Flag value: Entry's content was deleted to save space.  | 
    
int | 
        
          IS_GZIPPED
          Flag value: Content can be decompressed with java.util.zip.GZIPOutputStream.  | 
    
int | 
        
          IS_TEXT
          Flag value: Content is human-readable UTF-8 text (can be combined with IS_GZIPPED).  | 
    
Protected constructors | |
|---|---|
      
      DropBoxManager()
      
      
        Create an instance for testing.  | 
  |
Public methods | |
|---|---|
        
        
        
        
        
        void
     | 
  
    
      
      addData(String tag, byte[] data, int flags)
      
      
        Stores binary data, which may be ignored or discarded as with   | 
  
        
        
        
        
        
        void
     | 
  
    
      
      addFile(String tag, File file, int flags)
      
      
        Stores the contents of a file, which may be ignored or discarded as with
   | 
  
        
        
        
        
        
        void
     | 
  
    
      
      addText(String tag, String data)
      
      
        Stores human-readable text.  | 
  
        
        
        
        
        
        DropBoxManager.Entry
     | 
  
    
      
      getNextEntry(String tag, long msec)
      
      
        Gets the next entry from the drop box after the specified time.  | 
  
        
        
        
        
        
        boolean
     | 
  
    
      
      isTagEnabled(String tag)
      
      
        Checks any denylists (set in system settings) to see whether a certain tag is allowed.  | 
  
Inherited methods | |
|---|---|
Constants
ACTION_DROPBOX_ENTRY_ADDED
public static final String ACTION_DROPBOX_ENTRY_ADDED
Broadcast Action: This is broadcast when a new entry is added in the dropbox.
 For apps targeting 35 and later, For apps targeting Android versions lower
 than 35, you must hold
 Manifest.permission.READ_LOGS.
 This broadcast can be rate limited for low priority entries
 
This is a protected intent that can only be sent by the system.
Constant Value: "android.intent.action.DROPBOX_ENTRY_ADDED"
EXTRA_DROPPED_COUNT
public static final String EXTRA_DROPPED_COUNT
Extra for ACTION_DROPBOX_ENTRY_ADDED:
 integer value containing number of broadcasts dropped due to rate limiting on
 this EXTRA_TAG
Constant Value: "android.os.extra.DROPPED_COUNT"
EXTRA_TAG
public static final String EXTRA_TAG
Extra for ACTION_DROPBOX_ENTRY_ADDED:
 string containing the dropbox tag.
Constant Value: "tag"
EXTRA_TIME
public static final String EXTRA_TIME
Extra for ACTION_DROPBOX_ENTRY_ADDED:
 long integer value containing time (in milliseconds since January 1, 1970 00:00:00 UTC)
 when the entry was created.
Constant Value: "time"
IS_EMPTY
public static final int IS_EMPTY
Flag value: Entry's content was deleted to save space.
Constant Value: 1 (0x00000001)
IS_GZIPPED
public static final int IS_GZIPPED
Flag value: Content can be decompressed with java.util.zip.GZIPOutputStream.
Constant Value: 4 (0x00000004)
IS_TEXT
public static final int IS_TEXT
Flag value: Content is human-readable UTF-8 text (can be combined with IS_GZIPPED).
Constant Value: 2 (0x00000002)
Protected constructors
DropBoxManager
protected DropBoxManager ()
Create an instance for testing. All methods will fail unless
 overridden with an appropriate mock implementation.  To obtain a
 functional instance, use Context.getSystemService(Class).
Public methods
addData
public void addData (String tag, byte[] data, int flags)
Stores binary data, which may be ignored or discarded as with addText(String, String).
| Parameters | |
|---|---|
tag | 
        
          String: describing the type of entry being stored
 This value cannot be null. | 
      
data | 
        
          byte: value to store
 This value may be null. | 
      
flags | 
        
          int: describing the data
 Value is either 0 or a combination of IS_EMPTY, IS_TEXT, and IS_GZIPPED | 
      
addFile
public void addFile (String tag, File file, int flags)
Stores the contents of a file, which may be ignored or discarded as with
 addText(String, String).
| Parameters | |
|---|---|
tag | 
        
          String: describing the type of entry being stored
 This value cannot be null. | 
      
file | 
        
          File: to read from
 This value cannot be null. | 
      
flags | 
        
          int: describing the data
 Value is either 0 or a combination of IS_EMPTY, IS_TEXT, and IS_GZIPPED | 
      
| Throws | |
|---|---|
IOException | 
          if the file can't be opened | 
addText
public void addText (String tag, String data)
Stores human-readable text.  The data may be discarded eventually (or even
 immediately) if space is limited, or ignored entirely if the tag has been
 blocked (see isTagEnabled(String)).
| Parameters | |
|---|---|
tag | 
        
          String: describing the type of entry being stored
 This value cannot be null. | 
      
data | 
        
          String: value to store
 This value cannot be null. | 
      
getNextEntry
public DropBoxManager.Entry getNextEntry (String tag, long msec)
Gets the next entry from the drop box after the specified time.
 You must always call Entry.close() on the return value!
 Manifest.permission.READ_LOGS permission is
 required for apps targeting Android versions lower than 35.
 
 Requires Manifest.permission.READ_DROPBOX_DATA and Manifest.permission.PACKAGE_USAGE_STATS
| Parameters | |
|---|---|
tag | 
        
          String: of entry to look for, null for all tags | 
      
msec | 
        
          long: time of the last entry seen | 
      
| Returns | |
|---|---|
DropBoxManager.Entry | 
        the next entry, or null if there are no more entries | 
isTagEnabled
public boolean isTagEnabled (String tag)
Checks any denylists (set in system settings) to see whether a certain tag is allowed. Entries with disabled tags will be dropped immediately, so you can save the work of actually constructing and sending the data.
| Parameters | |
|---|---|
tag | 
        
          String: that would be used in addText(String, String) or addFile(String, File, int) | 
      
| Returns | |
|---|---|
boolean | 
        whether events with that tag would be accepted | 
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.