Answers to your questions

How do I display images in my form with SDK?

With SDK1, you can display images in your form by following the instructions below. This requires that you add image files directly to each Android device.

Create and upload an XLSForm with references to images:



  • In your XLSForm, add a column called 'media::image' in the 'survey' and/or 'choices' tab

  • In the 'media::image' column, type the name of the image file that you would like to display in that label. You can display images in your XLSForm within question labels and choices labels.

  • Upload the XLSForm to SDK

  • Get the Blank Form on your Android device


Add images directly to your Android device via Android File Transfer



  • Install [Android File Transfer](https://www.android.com/filetransfer/) on your computer

    • Enable 'MTP mode' on your Android device
    • Go to the 'Settings' app

    • Search 'MTP'

    • Click 'Media device (MTP)' (may be slightly different on different devices)

    • Make sure 'Media device (MTP)' is checked, which will allow you to transfer media files from your computer directly to your device

  • Have your images ready in a folder named '[form_title]-media', named consistently with the file names referenced in your XLSForm

  • Connect your Android device to your computer via USB

  • Open Android File Transfer

  • Drop the folder with your images in them in the /odk/forms folder.

  • File out your form and check that the images appear as intended


Notes



  • After adding the files directly to your Android, you *may* need to restart your SDK application or your device if the images do not show as intended the first time.

  • If you make a form change, you **must remove the outdated form from your device before getting the new form on your device** in order for the images to work as intended. When a new form with the same form_title is added to the device, SDK will automatically append a version number on the end of the form_title to differentiate between the two forms. This will break the intended connection to the images.

Back to Top

Can I have multiple ODK-based applications on my mobile device?

It's important that you only have one odk-based application installed on your mobile device: SDK. Other odk-based applications have been known to cause issues with one another when installed on the same device. If you have multiple odk-based applications on your device, you may encounter errors, be unable to submit data, or even lose data.

If you realize you have multiple odk-based applications installed on your device and you've already begun to collect data, DO NOT DELETE THE APP until you are sure that all collected data is safe on the SDK server. If you think you've submitted all the data but can not see it on the server, follow the instructions in this FAQ.

Our team is available to help you troubleshoot any issues or recover data, however we cannot be held responsible for any issues that arise if you had multiple odk-based applications installed on your device. Any troubleshooting done as a result of this error will be done at our hourly rate.

SDK Forms are often compatible with other ODK-based mobile data collection applications, so if for any reason you are unable to to remove an ODK-based mobile data collection application, you can likely use that application for your SDK data collection needs by configuring the device to point to SDK's servers.
Back to Top

What's the difference between the XLSForm types 'string' and 'text'?

Typically in XLSForm we choose to use 'string' when you're prompting to have your users type in a text box. The reason for this is because it saves the data as varchar(255), which is a very efficient way to store a lot of text. The limitation here is that you are constrained to 255 characters.

There is a workaround, and that is the 'text' type. A 'text' type presents itself the same as a 'string' on the user facing form itself, but is not limited by a certain character length. The downside here is that the data is saved a little less efficiently in the database, so it could cause queries to run slower than if the data was classified as a 'string.' This really only presents itself as an issue in significantly large databases, and in most cases will go unnoticed.

If you have any questions about how to build your XLSForm efficiently for future database querying, reach out to your SDK support contact and we'll be happy to assist you!
Back to Top

I submitted data from the SDK mobile app, but I can't find it on the SDK web app! How can I submit these records to the web app when I no longer see them on my device?

Secure Data Kit was built to store your submissions safe and sound, either on your mobile device or on our cloud servers. Even after SDK submits a record to the server, the record is still stored as a backup on your device in case they're needed.

If you think you have records on your device that never made it to the server for any reason, we can help you recover them. Follow the steps below and our support team will be in touch:

  • Access Android's file system by following these instructions: https://www.wikihow.com/Access-Android-System-Files

  • Find the folder titled 'ODK' and copy it to your computer

  • Zip up the 'ODK' folder

  • Submit a ticket by clicking 'Report Issue' when logged in to www.securedatakit.com (click you name in the upper right, and then select 'Report Issue' from the dropdown.

  • Fill out the form describing your issue, and be sure to attach the zipped ODK folder

  • A SDK team member will reply to your request with an estimated time of completion

Back to Top

What packages are supported in SDK's R reporting functionality?


PackageVersionPackageVersionPackageVersion
abind"3.3.0"acepack"3.3.0"AER"3.3.0"
akima"3.3.0"alr4"3.3.0"ape"3.3.0"
aplpack"3.3.0"arm"3.3.0"assertthat"3.3.0"
backports"3.3.0"base64enc"3.3.0"BB"3.3.0"
bdsmatrix"3.3.0"BH"3.3.0"biglm"3.3.0"
bit"3.3.0"bit64"3.3.0"bitops"3.0.2"
blob"3.3.0"bmp"3.3.0"brew"3.3.0"
car"3.3.0"catdata"3.3.0"caTools"3.0.2"
cellranger"3.3.0"checkmate"3.3.0"chron"3.3.0"
coda"3.3.0"coin"3.3.0"colorspace"3.3.0"
commonmark"3.3.0"CompQuadForm"3.3.0"covr"3.3.0"
coxme"3.3.0"crayon"3.3.0"curl"3.3.0"
data.table"3.3.0"date"3.3.0"DBI"3.3.0"
DBItest"3.3.0"deldir"3.3.0"DEoptimR"3.3.0"
desc"3.3.0"devtools"3.3.0"dfoptim"3.3.0"
dichromat"3.3.0"digest"3.0.2"doBy"3.3.0"
doParallel"3.3.0"downloader"3.3.0"dplyr"3.3.0"
dynlm"3.3.0"e1071"3.3.0"effects"3.3.0"
evaluate"3.3.0"expsmooth"3.3.0"fBasics"3.3.0"
fit.models"3.3.0"fontBitstreamVera"3.3.0"fontLiberation"3.3.0"
fontquiver"3.3.0"foreach"3.3.0"forecast"3.3.0"
formatR"3.0.2"Formula"3.3.0"fracdiff"3.3.0"
fTrading"3.3.0"fts"3.3.0"functional"3.0.2"
gamm4"3.3.0"gdata"3.3.0"gdtools"3.3.0"
geosphere"3.3.0"GGally"3.3.0"ggplot2"3.3.0"
ggplot2movies"3.3.0"git2r"3.3.0"gmailr"3.3.0"
GPArotation"3.3.0"gplots"3.3.0"gridBase"3.3.0"
gridExtra"3.3.0"gss"3.3.0"gtable"3.3.0"
gtools"3.3.0"heplots"3.3.0"hexbin"3.3.0"
highr"3.0.2"Hmisc"3.3.0"hms"3.3.0"
HSAUR"3.3.0"HSAUR2"3.3.0"htmlTable"3.3.0"
htmltools"3.3.0"htmlwidgets"3.3.0"httpuv"3.0.2"
httr"3.3.0"hunspell"3.3.0"igraph"3.3.0"
igraphdata"3.3.0"influenceR"3.3.0"irlba"3.3.0"
iterators"3.3.0"itertools"3.3.0"jpeg"3.3.0"
jsonlite"3.3.0"kableExtra"3.3.0"kernlab"3.3.0"
knitr"3.3.0"labeling"3.3.0"latticeExtra"3.3.0"
lavaan"3.3.0"lazyeval"3.3.0"leaps"3.3.0"
lintr"3.3.0"lme4"3.3.0"lmtest"3.3.0"
lubridate"3.3.0"magrittr"3.0.2"mapproj"3.3.0"
maps"3.3.0"maptools"3.3.0"markdown"3.0.2"
matrixcalc"3.3.0"MatrixModels"3.3.0"memoise"3.3.0"
MEMSS"3.3.0"mi"3.3.0"mime"3.0.2"
minqa"3.3.0"misc3d"3.3.0"mitools"3.3.0"
mlbench"3.3.0"mlmRev"3.3.0"mnormt"3.3.0"
modeltools"3.3.0"MPV"3.3.0"multcomp"3.3.0"
munsell"3.3.0"mvtnorm"3.3.0"nloptr"3.3.0"
NMF"3.3.0"nortest"3.3.0"numDeriv"3.3.0"
officer"3.3.0"openssl"3.3.0"optextras"3.3.0"
optimx"3.3.0"ordinal"3.3.0"orientlib"3.3.0"
pbivnorm"3.3.0"pbkrtest"3.3.0"pcaPP"3.3.0"
PerformanceAnalytics"3.3.0"permute"3.3.0"pkgconfig"3.3.0"
pkgKitten"3.3.0"pkgmaker"3.3.0"PKPDmodels"3.3.0"
plogr"3.3.0"plotrix"3.3.0"plyr"3.3.0"
png"3.3.0"poLCA"3.3.0"polycor"3.3.0"
praise"3.3.0"prettyunits"3.3.0"progress"3.3.0"
proto"3.3.0"psych"3.3.0"purrr"3.3.0"
quadprog"3.3.0"quantmod"3.3.0"quantreg"3.3.0"
R6"3.0.2"randomForest"3.3.0"Rcgmin"3.3.0"
Rcmdr"3.3.0"RcmdrMisc"3.3.0"RColorBrewer"3.3.0"
Rcpp"3.0.2"RcppArmadillo"3.3.0"RcppEigen"3.3.0"
Rcsdp"3.3.0"RCurl"3.3.0"readr"3.3.0"
readxl"3.3.0"registry"3.3.0"relimp"3.3.0"
rematch"3.3.0"ReporteRs"3.3.0"ReporteRsjars"3.3.0"
reshape"3.3.0"reshape2"3.3.0"rex"3.3.0"
rgexf"3.3.0"rgl"3.3.0"rJava"3.3.0"
RJSONIO"3.0.2"rlang"3.3.0"rmarkdown"3.3.0"
R.methodsS3"3.3.0"RMySQL"3.0.2"rngtools"3.3.0"
robust"3.3.0"robustbase"3.3.0"R.oo"3.3.0"
Rook"3.3.0"roxygen2"3.3.0"rpf"3.3.0"
RPostgreSQL"3.0.2"rprojroot"3.3.0"rrcov"3.3.0"
rstudioapi"3.3.0"rticles"3.3.0"RUnit"3.3.0"
R.utils"3.3.0"rversions"3.3.0"rvest"3.3.0"
rvg"3.3.0"Rvmmin"3.3.0"sandwich"3.3.0"
scales"3.3.0"scatterplot3d"3.3.0"selectr"3.3.0"
sem"3.3.0"semTools"3.3.0"setRNG"3.3.0"
sfsmisc"3.3.0"shiny"3.0.2"sp"3.3.0"
SparseM"3.3.0"stabledist"3.3.0"StanHeaders"3.3.0"
stringdist"3.3.0"stringi"3.0.2"stringr"3.0.2"
strucchange"3.3.0"survey"3.3.0"survival"3.3.0"
svglite"3.3.0"svUnit"3.3.0"tcltk2"3.3.0"
testthat"3.3.0"TH.data"3.3.0"tibble"3.3.0"
tidyr"3.3.0"timeDate"3.3.0"timeSeries"3.3.0"
tis"3.3.0"tree"3.3.0"tseries"3.3.0"
TTR"3.3.0"ucminf"3.3.0"uuid"3.3.0"
vcd"3.3.0"vegan"3.3.0"viridis"3.3.0"
viridisLite"3.3.0"visNetwork"3.3.0"whisker"3.3.0"
withr"3.3.0"XML"3.3.0"xml2"3.3.0"
xtable"3.0.2"xts"3.3.0"yaml"3.0.2"
zip"3.3.0"zoo"3.3.0"DBI"3.0.0"
RMySQL"3.0.0"base"3.3.0"boot"3.2.1"
class"3.2.2"cluster"3.2.5"codetools"3.2.2"
compiler"3.3.0"datasets"3.3.0"foreign"3.2.2"
graphics"3.3.0"grDevices"3.3.0"grid"3.3.0"
KernSmooth"3.2.1"lattice"3.2.1"MASS"3.2.2"
Matrix"3.3.0"methods"3.3.0"mgcv"3.2.3"
nlme"3.2.5"nnet"3.2.3"parallel"3.3.0"
rpart"3.2.1"spatial"3.2.2"splines"3.3.0"
stats"3.3.0"stats4"3.3.0"survival"3.2.5"
tcltk"3.3.0"tools"3.3.0"utils"3.3.0"
Back to Top

Can I turn off downloads and submissions for forms in my project?

Yes, you can! The ability to mark a form downloadable and/or submittable is available to admins of the organization your project is a part of. If you are not your organization's admin, please contact them to make this change. First, let's define the terminology:


  • Downloadable: Your blank form can be downloaded onto a users and filled out. Setting Downloadable to 'No' prevents new devices from downloading the form.

  • Submittable: Records created by filling out blank forms can be submitted to the server. Setting Submittable to 'No' prevents new and existing local records from being submitted to the server.

  • Visible (SDK2 app only): Your blank form is visible on the home screen of the SDK2 application. Setting Visible to 'No' will hide this form from the home screen, but does not prevent local records from being submitted to the server.



We use different terminology for this to help differentiate between our two apps: the legacy SDK application (available on Android only), and SDK2 (available on both Android and iPhone). Please follow the instructions based on the applications being used in the field.

Make a form not downloadable or submittable on SDK (legacy app):



  • First, navigate to the Dataset Settings page by clicking the 3 little dots next to your dataset, and choosing 'Settings'

  • Next, toggle the dropdown next to either 'Downloadable?' or 'Submittable?' and change to 'No.'

  • Click 'Save' at the bottom of the Settings page to save this new setting.



Make a form invisible on SDK2:



  • First, navigate to the Dataset Settings page by clicking the 3 little dots next to your dataset, and choosing 'Settings'

  • Next, toggle the dropdown next to 'Visible' to 'No.'

  • Click 'Save' at the bottom of the Settings page to save this new setting.

Back to Top

What Android devices are supported for the SDK and SDK2 mobile application?

New Android devices are coming out all the time (there are 15,000 different types of Android devices available!), so it's difficult to say what is and is not supported. That said, there are several specifications that will ensure that SDK runs well on your device. In general, look for the following when purchasing an Android device that plays well with SDK.


  • Memory: 4GB minimum, 8GB or higher recommended.

  • RAM: 1GB minimum, 2GB or higher recommended

  • Android OS: 5.0 minimum, 7.0 or 8.0 recommended

  • Battery Life: 2,500 mAh minimum (the higher the mAh, the longer lasting battery)



Here is a list of phones that the SDK team is able to support, should any issues arise.

  • BLU Tank Xtreme

  • BLU Life LX

  • Motorola Moto E

  • BLU Advance 4.0M



Here is a list of tablets that the SDK team is able to support, should any issues arise.

  • ASUS ZenPad 8.0 Z380M

Back to Top

How can I add a user to my project in SDK?

There are many different types of users. Organization Admins and Project Admins can add users to projects. If you have a different user role, please contact your Organization or Project admin to either grant you a new role or add the new user on your behalf.
To add a new user:
- Navigate to the project that you’d like to add a new user to.
- Scroll down to the ‘Users’ section of the project.
- Click ‘Add New User’ in the upper right of the user section.
- Enter the user’s details, and select ‘Add User and Send Invitation.’
Back to Top

Does SDK support forms in multiple languages?

Yes! If the SDK team is handling form development for you, and you plan on creating a form with multi-language support, please notify the SDK team at the start of your project.
The SDK team will begin developing your mobile forms in English first, and once all forms have been tested and approved the SDK team will send you an excel file that your team can input translations in.
Back to Top
Get Friendly Support