This is a project of a demo app, that demonstrate how we assessed smartphone language in context of the user's input intention (i.e. input prompt texts) in our paper Contextualizing Smartphone-Typed Language With User Input Intention. While the app itself is just a bare demo app without UI and functionality, it includes the Android modules that implement the language and UI logging for reuse. It is meant to inspire your own implement, e.g., you can copy classes, code snippets,or modules that are helpful for you into your project.
This app logs the text contents that a user is typing. Text contents are preprocessed on-device through a categorization process (see paper Bemmann, Buschek 2020. LanguageLogger: A Mobile Keyboard Application for Studying Language Use in Everyday Text Communication in the Wild for details). This project especially demonstrates how UI-metadata, here the input prompt text / placeholder, is used to provide contextual information on each text input. Thereby the researcher can filter for example for private messages, or search inputs to get more focussed data.
Code that connects to accessibility service and extracts the UI metadata.
Code that deals with preprocessing the raw text data, to ensure privacy. The procedure an system are explained in detail in our paper Bemmann, Buschek 2020. LanguageLogger: A Mobile Keyboard Application for Studying Language Use in Everyday Text Communication in the Wild and the according GitHub repository: https://github.com/Flo890/languagelogger-app
In this project, all online features (remote-configuration of aggregation dictionaries, synching of resulting data to researcher server) have been disabled/removed.
In order to receive keykoard input events, the module's Accessibility service must be registered. After installing the app, the user can activate it in the phone settings Accessibility -> PhoneStudy Textverarbeitung -> Then turn the toggle button on. In a real study, you should either guide the user to this screen through an intent, or supervise the configuration.
A log statement will confirm the service activation.
Afterwards the system will record all key inputs, alongside the input text fields meta data. You can again observe the process in the console log.
A deeper inspection of the information that becomes available through our tool is possible in the app's local database, which can be accessed for example via Android Studio's App Inspection tab.
When reusing this project for your work, please cite:
Florian Bemmann, Timo K. Koch, Maximilian Bergmann, Clemens Stachl, Daniel Buschek, Ramona Schoedel, and Sven Mayer. 2025. Contextualizing Smartphone-Typed Language With User Input Intention. In Mensch und Computer 2025 (MuC ’25), August 31-September 03, 2025, Chemnitz, Germany. ACM, New York, NY, USA, 6 pages. https://doi.org/10.1145/3743049.3748537
Real-world user data needs to be treated with care. Although this system uses an on-device aggregation process of text inputs, studies using this system are prone to privacy and security issues. We are not responsible for issues arising from the usage of our software - please ensure that you apply it wisely and understand the full data flow! Also please note that the on-device aggregation process may be undermined through inappropriate configurations.