2012-01-10 3 views
0

Я не хочу код, просто нужна помощь в поиске, где начать этот проект. Мне нужно написать приложение, которое работает в фоновом режиме на ОС Adroid и делает снимок экрана с заданным интервалом и сохраняет их в файл или базу данных. До сих пор я только использовал Java SDK, но я думаю, что, возможно, придется делать вещи в C для этого проекта, потому что:Запись экрана с Android SDK?

  1. Я не вижу, как в Java, чтобы непосредственно работать с холстом/экран других видов деятельности? Поскольку у каждого вида деятельности есть своя память, и все остается довольно раздельным по соображениям безопасности, я думаю, мне нужно идти на более низкий уровень?

  2. В идеале родитель может установить это приложение на телефон своего ребенка, и для них не было бы тривиальным отключить его или удалить без уведомления родителя. Это может показаться сложным, и я могу придумать готовые решения, если это необходимо, но, надеясь на более низкий уровень C, возможно, что-то поможет в этом.

  3. Если мне нужно идти с SDK уровня, существуют ли ограничения для распространения/установки, которые становятся сложными? Например, подобные вещи требуют соглашения с OEM-производителями, чтобы предварительно установить наше программное обеспечение.

... Я полагаю, антивирусное программное обеспечение может быть в аналогичной категории, что мое приложение нужно сделать, но, к сожалению, шпион посуда и вирусы, вероятно, также делают подобные вещи, так то, что становится проблемой, даже если это было бы очень законным приложением.

+0

https://github.com/cgjones/android-frameworks-base/blob/gingerbread-b2g/include/surfaceflinger/SurfaceComposerClient.h - ваш друг.Но имейте в виду, что класс ScreenshotClient, найденный там, можно считать довольно хорошо заблокированным из обычных приложений. – harism

ответ

2

Я не знаю много о фактическом захвате экрана, но я могу помочь с некоторыми из ваших вопросов.

В идеале родитель может установить это приложение на телефон своего ребенка, и для них не было бы тривиальным отключить его или удалить без уведомления родителя. Это может показаться сложным, и я могу придумать готовые решения, если это необходимо, но, надеясь на более низкий уровень C, возможно, что-то поможет в этом.

Если ваш apk находится в папке system/app, его нельзя удалить с помощью экрана настроек управляющих приложений. Чтобы попасть в эту папку, вам понадобится корневое устройство. Однако, поскольку устройство внедрено и, таким образом, может получить доступ к системе r/w, удаление вашего приложения на самом деле не сложнее, это просто другой процесс. Для удаления вам просто нужно открыть корневой проводник и вручную удалить файл apk.

Если мне нужно идти с SDK уровня, существуют ли ограничения для распространения/установки, которые становятся сложными? Например, подобные вещи требуют соглашения с OEM-производителями, чтобы предварительно установить наше программное обеспечение.

Для того, чтобы получить где-нибудь близко к функциональности вы после (что делает его более трудным, чтобы отключить/удалить себя) вы либо делать что-то в пределах общественных API, который скорее всего, не означали существовать, так что, скорее всего, получить исправление и разорвать ваше приложение в конце концов (я не говорю, что есть способ сделать это с публичными API-интерфейсами, только если бы они были). Или вы будете зависеть от своего приложения, работающего только на корневом устройстве, или на устройстве, на котором вы создали свою собственную копию ОС.

0

То, что вы хотите, невозможно, за исключением корневых устройств.