AndroidSensorCollector

所属分类:Websocket编程
开发工具:kotlin
文件大小:0KB
下载次数:0
上传日期:2023-08-05 14:09:59
上 传 者sh-1993
说明:  将传感器数据和系统信息收集到websocket服务器,
(Collect sensor data and system information to a websocket server,)

文件列表:
.idea/ (0, 2023-08-05)
.idea/compiler.xml (169, 2023-08-05)
.idea/gradle.xml (818, 2023-08-05)
.idea/inspectionProfiles/ (0, 2023-08-05)
.idea/inspectionProfiles/Project_Default.xml (2331, 2023-08-05)
.idea/jarRepositories.xml (1304, 2023-08-05)
.idea/kotlinc.xml (175, 2023-08-05)
.idea/misc.xml (409, 2023-08-05)
.idea/vcs.xml (180, 2023-08-05)
LICENSE.md (11357, 2023-08-05)
SensorCollectorLibrary/ (0, 2023-08-05)
SensorCollectorLibrary/build.gradle (1323, 2023-08-05)
SensorCollectorLibrary/consumer-rules.pro (0, 2023-08-05)
SensorCollectorLibrary/proguard-rules.pro (750, 2023-08-05)
SensorCollectorLibrary/src/ (0, 2023-08-05)
SensorCollectorLibrary/src/main/ (0, 2023-08-05)
SensorCollectorLibrary/src/main/AndroidManifest.xml (121, 2023-08-05)
SensorCollectorLibrary/src/main/java/ (0, 2023-08-05)
SensorCollectorLibrary/src/main/java/com/ (0, 2023-08-05)
SensorCollectorLibrary/src/main/java/com/ignassew/ (0, 2023-08-05)
SensorCollectorLibrary/src/main/java/com/ignassew/sensorcollectorlibrary/ (0, 2023-08-05)
SensorCollectorLibrary/src/main/java/com/ignassew/sensorcollectorlibrary/Collector.kt (1231, 2023-08-05)
SensorCollectorLibrary/src/main/java/com/ignassew/sensorcollectorlibrary/PerfBench.kt (3143, 2023-08-05)
SensorCollectorLibrary/src/main/java/com/ignassew/sensorcollectorlibrary/SendableError.kt (157, 2023-08-05)
SensorCollectorLibrary/src/main/java/com/ignassew/sensorcollectorlibrary/SendableIdentity.kt (208, 2023-08-05)
SensorCollectorLibrary/src/main/java/com/ignassew/sensorcollectorlibrary/SensorEventListener.kt (2700, 2023-08-05)
SensorCollectorLibrary/src/main/java/com/ignassew/sensorcollectorlibrary/SystemInfo.kt (2478, 2023-08-05)
SensorCollectorLibrary/src/main/java/com/ignassew/sensorcollectorlibrary/WebSocketClient.kt (1561, 2023-08-05)
build.gradle (341, 2023-08-05)
gradle.properties (1359, 2023-08-05)
gradle/ (0, 2023-08-05)
gradle/wrapper/ (0, 2023-08-05)
gradle/wrapper/gradle-wrapper.jar (59203, 2023-08-05)
gradle/wrapper/gradle-wrapper.properties (231, 2023-08-05)
gradlew (5766, 2023-08-05)
gradlew.bat (2763, 2023-08-05)
... ...

[![](https://jitpack.io/v/ignassew/AndroidSensorCollector.svg)](https://jitpack.io/#ignassew/AndroidSensorCollector) # Sensor Collector Library for Android Collect sensor data and system information to a websocket server # Usage 1. Add Jitpack repository to your root `build.gradle`: ```groovy allprojects { repositories { ... maven { url 'https://jitpack.io' } } } ``` 2. Add the dependency: ```groovy dependencies { implementation 'com.github.ignassew:AndroidSensorCollector:v1.0.4' } ``` 4. [Add necessary permissions](#Permissions) 5. Initialize the Collector class when the app starts: ```kotlin override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) Collector(application, "") // ... } ``` # Permissions ### Internet This library doesn't state any permissions in its manifest, but it does require internet access. You will need to add `android.permission.INTERNET`to your `AndroidManifest.xml` ### Cleartext traffic (optional) If your WebSocket server is **not** behind TLS, you will have to add `android:usesCleartextTraffic="true"` attribute to [application](https://developer.android.com/guide/topics/manifest/application-element) in `AndroidManifest.xml`. # What data is being collected All data being collected is anonymous. ### Device data - [Manufacturer](https://developer.android.com/reference/android/os/Build#MANUFACTURER) - [Hardware](https://developer.android.com/reference/android/os/Build#HARDWARE) - [Model](https://developer.android.com/reference/android/os/Build#MODEL) - [Bootloader](https://developer.android.com/reference/android/os/Build#BOOTLOADER) - [Product](https://developer.android.com/reference/android/os/Build#PRODUCT) - [Tags](https://developer.android.com/reference/android/os/Build#TAGS) - [Type](https://developer.android.com/reference/android/os/Build#TYPE) - [User](https://developer.android.com/reference/android/os/Build#USER) - [Display](https://developer.android.com/reference/android/os/Build#DISPLAY) - [Board](https://developer.android.com/reference/android/os/Build#BOARD) - [Brand](https://developer.android.com/reference/android/os/Build#BRAND) - [Device](https://developer.android.com/reference/android/os/Build#DEVICE) - [Fingerprint](https://developer.android.com/reference/android/os/Build#FINGERPRINT) - [Host](https://developer.android.com/reference/android/os/Build#HOST) - [Id](https://developer.android.com/reference/android/os/Build#ID) - Version * [Release](https://developer.android.com/reference/android/os/Build.VERSION#RELEASE) * [Codename](https://developer.android.com/reference/android/os/Build.VERSION#CODENAME) * [Incremental](https://developer.android.com/reference/android/os/Build.VERSION#INCREMENTAL) * [Sdk_int](https://developer.android.com/reference/android/os/Build.VERSION#SDK_INT) - Screen * width * height * pixel density - List of available sensors - Performance micro-benchmarks (e.g. square root of a number ran n times) - SHA-256 hash of [ANDROID_ID](https://developer.android.com/reference/android/provider/Settings.Secure#ANDROID_ID) and [Build.FINGERPRINT](https://developer.android.com/reference/android/os/Build#FINGERPRINT) combined ### Sensor data To prevent battery drain, this library will collect at least 1024 events of each type and then turn off. This takes around 4 minutes. This library collects only following sensor events: - [Accelerometer](https://developer.android.com/reference/android/hardware/Sensor#TYPE_ACCELEROMETER) - [Gravity](https://developer.android.com/reference/android/hardware/Sensor#TYPE_GRAVITY) - [Magnetic Field](https://developer.android.com/reference/android/hardware/Sensor#TYPE_MAGNETIC_FIELD) - [Gyroscope](https://developer.android.com/reference/android/hardware/Sensor#TYPE_GYROSCOPE) # Server My server is currently not open source. If you want to build your own server, read the spec below: ### Message types This library uses WebSockets to communicate with the server. There are only 4 message types sent by the client. Messages are encoded in JSON. Server is not expected to ever send anything back.
Identity This message has to be sent before any other message. Otherwise server shall close the connection. ```json { "messageType": "identity", "packageName": "com.ignassew.myapplication" } ```
System Info ```json { "build": { "board": "string", "bootloader": "string", "brand": "string", "device": "string", "display": "string", "fingerprint": "string", "hardware": "string", "host": "string", "id": "string", "manufacturer": "string", "model": "string", "product": "string", "tags": "string", "type": "string", "user": "string", "version": { "codename": "string", "incremental": "string", "release": "string", "sdk_int": "int" } }, "id": "string", "messageType": "systemInfo", "perfBench": "list", "screen": { "density": "float", "heightPixels": "int", "widthPixels": "int" }, "sensorList": "list" } ```
Sensor ```json { "accuracy": "int", "messageType": "sensor", "timestamp": "int (nanoseconds)", "type": "int", "x": "float", "y": "float", "z": "float" } ```
Error ```json { "messageType": "error", "message": "string" } ```
# License Copyright 2023 Ignacy Sewastianowicz Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

近期下载者

相关文件


收藏者