Android lockdown app (use Android as an advertisement screen)

已取消 已发布的 Jun 26, 2015 货到付款
已取消 货到付款

Specification for Android lockdown app

Purpose

To lock down an android device to Chrome in order to use as an advertisement screen/DS screen.

Requirements

1. Android shall always boot in “locked down” mode.

2. In “locked down” mode the device shall display Chrome in fullscreen (no toolbar) and go to a URL (the URL must be configurable in the app settings, the app settings can only be reached once correct password is entered which takes the device out of “locked down” mode).

3. The device can only go back into “normal” Android mode by entering an unlock password (the password must be configurable in the app settings which one can only reach after entering the correct password).

4. All controls are to be disabled while in “locked down” mode, so touching the screen (including all gestures android might otherwise respond to) or pressing any other button on the device (including power button, volume control etc.) shall only bring up a password prompt (and of course the android keyboard for input) to give user a chance to unlock.

If correct password is not entered within a time limit (5 seconds by default but include this time limit in the app settings so we can change it later) the password prompt and keyboard shall be hidden and device go back to displaying Chrome (not reloading the page).

Alternative to 4. I’m not familiar with android development but perhaps it is easier to disable all the buttons and gestures (as described above) than to tie them to a certain function (the password prompt), and only have a certain control (for example the home button) display the password prompt. Just let me know which way you prefer to do it.

5. Volume for the device can only be set when not in “locked down” mode (natural consequence of requirement 4 above).

6 (If you are unable to accomplish this item 6, your bid could still be considered, as long as you inform us that you are unable to perform requirement 6): By default Android disables the ability to start playback of a video (for example youtube video) by javascript. Android has that policy to prevent website developers from automatically triggering download of large amounts of media, a user tap is required. As you can see, user tap is not possible in our case, so we want this limitation removed so that playback of videos can be triggered by javascript.

7. In app settings, possibility to give device a name (in preparation for future features below)

Build with future in mind

Features that we see a future need for include (we don’t need these features yet but do not build the app in such a way that these extensions are impossible to make later on, we would rather that you prepare the app for these extensions)

Touch

- Enable touch (on/off switch in app settings)

- Lock Chrome to only whitelisted domains (list of whitelisted domains in app settings)

Remote administration

- Remote configuration of settings

- Remote overview of what devices are online

- Remote reboot of device

- Remote clearing of Chrome cache (including chrome://appcache-internals, ie. all offline application data)

- Sleep time settings to be fetched from an API-route in our webapp (json returned, data can be structured as you wish/require). So this is to define time of day when device is to go into sleep (or hibernation) and when to wake up again. Also dates for longer periods of sleep. I’m not drawing out the details for this since it is not a feature we need at the moment.

Please advice whether or not your bid is still valid as per this update.

I have provided a picture with the logical outline for the app.

If requirement 4 is not possible in regards to locking down the power and volume buttons, that is ok, I can consent to drop that part of requirement 4.

Instead I made a slight modification as to what URL Chrome is to display, requirement 2 is modified to read:

The app settings can only be reached from the home screen, and the home screen can only be accessed once correct password is entered which takes the device out of “locked down” mode. In “locked down” mode the device shall display Chrome in fullscreen (no toolbar or other type of status/message bars/popups) and go to a URL. Which URL to load is written below:

-The app shall contact my API at a time interval (probably every 5 minutes) to fetch the URL which is to be displayed in chrome (I can serve you the URL as a plain string or any other way you like). When URL is successfully fetched from the API to the app, it is stored locally in memory (saved on disk in case of reboot/power outage).
-The app settings will have a field for API-key that the user can enter (and the API call that you make for fetching a URL is composed of a static, hard-coded part "http://ds1.warpnine.se/" and then the user-defined alphanumeric key)
-If fetched URL is same as locally stored URL, do nothing, just let chrome keep running the content, no reload or anything.
-If fetched URL is different than locally stored URL, PERFORM A FULL CACHE CLEARING OF CHROME INCLUDING ANY OFFLINE CACHE MANIFESTS, then store the new URL locally in app and load new URL to the browser.
-If device has a locallly stored URL but is unable to contact the API (for example if device is offline), just continue displaying the locally stored URL.
-If device is offline and has never fetched the URL from the API, display a screen with my logo and message "device offline, standing by for first content load" instead of loading a URL in Chrome.

Other details:
- I require the full source code for the app, so that I can keep developing it later on, by myself or with a different consultant. Code shall be commented in english as per standard practice.

If you would be so kind and also...
- Provide your advice on how to publish the app to android market since I have never done that before. (if it's easy just provide me with a URL where I can learn)
- I would like your brief notes on where in the source code to change the API route in case I need to make such a change later on, and notify me how to re-compile the app (perhaps you are using a special software, framework etc.)

安卓 移动应用开发

项目ID: #7939847

关于项目

11个方案 远程项目 活跃的Jul 20, 2015