diff options
-rw-r--r-- | api/current.xml | 33 | ||||
-rw-r--r-- | core/java/android/os/DropBoxManager.java | 24 | ||||
-rw-r--r-- | services/java/com/android/server/DropBoxManagerService.java | 11 |
3 files changed, 66 insertions, 2 deletions
diff --git a/api/current.xml b/api/current.xml index a26909a..38fbe5c 100644 --- a/api/current.xml +++ b/api/current.xml @@ -124732,6 +124732,39 @@ <parameter name="tag" type="java.lang.String"> </parameter> </method> +<field name="ACTION_DROPBOX_ENTRY_ADDED" + type="java.lang.String" + transient="false" + volatile="false" + value=""android.intent.action.DROPBOX_ENTRY_ADDED"" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="EXTRA_TAG" + type="java.lang.String" + transient="false" + volatile="false" + value=""tag"" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> +<field name="EXTRA_TIME" + type="java.lang.String" + transient="false" + volatile="false" + value=""time"" + static="true" + final="true" + deprecated="not deprecated" + visibility="public" +> +</field> <field name="IS_EMPTY" type="int" transient="false" diff --git a/core/java/android/os/DropBoxManager.java b/core/java/android/os/DropBoxManager.java index 47a7696..e1c1678 100644 --- a/core/java/android/os/DropBoxManager.java +++ b/core/java/android/os/DropBoxManager.java @@ -58,6 +58,30 @@ public class DropBoxManager { private static final int HAS_BYTE_ARRAY = 8; /** + * Broadcast Action: This is broadcast when a new entry is added in the dropbox. + * You must hold the {@link android.Manifest.permission#READ_LOGS} permission + * in order to receive this broadcast. + * + * <p class="note">This is a protected intent that can only be sent + * by the system. + */ + public static final String ACTION_DROPBOX_ENTRY_ADDED = + "android.intent.action.DROPBOX_ENTRY_ADDED"; + + /** + * Extra for {@link android.os.DropBoxManager#ACTION_DROPBOX_ENTRY_ADDED}: + * string containing the dropbox tag. + */ + public static final String EXTRA_TAG = "tag"; + + /** + * Extra for {@link android.os.DropBoxManager#ACTION_DROPBOX_ENTRY_ADDED}: + * long integer value containing time (in milliseconds since January 1, 1970 00:00:00 UTC) + * when the entry was created. + */ + public static final String EXTRA_TIME = "time"; + + /** * A single entry retrieved from the drop box. * This may include a reference to a stream, so you must call * {@link #close()} when you are done using it. diff --git a/services/java/com/android/server/DropBoxManagerService.java b/services/java/com/android/server/DropBoxManagerService.java index 0e45145..3981525 100644 --- a/services/java/com/android/server/DropBoxManagerService.java +++ b/services/java/com/android/server/DropBoxManagerService.java @@ -218,8 +218,14 @@ public final class DropBoxManagerService extends IDropBoxManagerService.Stub { } } while (read > 0); - createEntry(temp, tag, flags); + long time = createEntry(temp, tag, flags); temp = null; + + Intent dropboxIntent = new Intent(DropBoxManager.ACTION_DROPBOX_ENTRY_ADDED); + dropboxIntent.putExtra(DropBoxManager.EXTRA_TAG, tag); + dropboxIntent.putExtra(DropBoxManager.EXTRA_TIME, time); + mContext.sendBroadcast(dropboxIntent, android.Manifest.permission.READ_LOGS); + } catch (IOException e) { Slog.e(TAG, "Can't write: " + tag, e); } finally { @@ -597,7 +603,7 @@ public final class DropBoxManagerService extends IDropBoxManagerService.Stub { } /** Moves a temporary file to a final log filename and enrolls it. */ - private synchronized void createEntry(File temp, String tag, int flags) throws IOException { + private synchronized long createEntry(File temp, String tag, int flags) throws IOException { long t = System.currentTimeMillis(); // Require each entry to have a unique timestamp; if there are entries @@ -636,6 +642,7 @@ public final class DropBoxManagerService extends IDropBoxManagerService.Stub { } else { enrollEntry(new EntryFile(temp, mDropBoxDir, tag, t, flags, mBlockSize)); } + return t; } /** |