am fa436298
: Merge "Broadcast an intent to mediascanner after executing screencap"
* commit 'fa4362982c4e5d07c158c470f957f6ffd2fc7cc9': Broadcast an intent to mediascanner after executing screencap
This commit is contained in:
@ -18,6 +18,8 @@
|
||||
#include <unistd.h>
|
||||
#include <stdio.h>
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <linux/fb.h>
|
||||
#include <sys/ioctl.h>
|
||||
@ -86,6 +88,21 @@ static status_t vinfoToPixelFormat(const fb_var_screeninfo& vinfo,
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
static status_t notifyMediaScanner(const char* fileName) {
|
||||
String8 cmd("am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file://");
|
||||
String8 fileUrl("\"");
|
||||
fileUrl.append(fileName);
|
||||
fileUrl.append("\"");
|
||||
cmd.append(fileName);
|
||||
cmd.append(" > /dev/null");
|
||||
int result = system(cmd.string());
|
||||
if (result < 0) {
|
||||
fprintf(stderr, "Unable to broadcast intent for media scanner.\n");
|
||||
return UNKNOWN_ERROR;
|
||||
}
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
ProcessState::self()->startThreadPool();
|
||||
@ -112,10 +129,11 @@ int main(int argc, char** argv)
|
||||
argv += optind;
|
||||
|
||||
int fd = -1;
|
||||
const char* fn;
|
||||
if (argc == 0) {
|
||||
fd = dup(STDOUT_FILENO);
|
||||
} else if (argc == 1) {
|
||||
const char* fn = argv[0];
|
||||
fn = argv[0];
|
||||
fd = open(fn, O_WRONLY | O_CREAT | O_TRUNC, 0664);
|
||||
if (fd == -1) {
|
||||
fprintf(stderr, "Error opening file: %s (%s)\n", fn, strerror(errno));
|
||||
@ -183,6 +201,7 @@ int main(int argc, char** argv)
|
||||
SkData* streamData = stream.copyToData();
|
||||
write(fd, streamData->data(), streamData->size());
|
||||
streamData->unref();
|
||||
notifyMediaScanner(fn);
|
||||
} else {
|
||||
write(fd, &w, 4);
|
||||
write(fd, &h, 4);
|
||||
|
Reference in New Issue
Block a user