https://github.com/kl3jvi/sysinfo
📖 This library is a set of simple wrapper classes that are aimed to help you easily access android device information.
https://github.com/kl3jvi/sysinfo
android androidlibrary deviceinformation hardware kotlin kotlin-library library
Last synced: about 1 month ago
JSON representation
📖 This library is a set of simple wrapper classes that are aimed to help you easily access android device information.
- Host: GitHub
- URL: https://github.com/kl3jvi/sysinfo
- Owner: kl3jvi
- Created: 2021-09-07T20:49:06.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2022-08-02T09:04:11.000Z (almost 3 years ago)
- Last Synced: 2025-03-22T15:51:41.161Z (about 2 months ago)
- Topics: android, androidlibrary, deviceinformation, hardware, kotlin, kotlin-library, library
- Language: Kotlin
- Homepage:
- Size: 274 KB
- Stars: 10
- Watchers: 1
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SysInfo
Simple, single class wrapper to get device information from an android device.

This library provides an easy way to access all the device information without having to deal with all the boilerplate stuff going on inside.
Library also provides option to ask permissions for Marshmellow devices!
How to integrate the library in your app?
Gradle Dependecy```gradle
dependencies {
implementation 'com.github.kl3jvi:sysinfo:1.0.0'
}
```Maven Dependecy
```xmlcom.an.deviceinfo
deviceinfo
0.1.5
pom```
Downloads
You can download the aar file from the release folder in this project.
In order to import a .aar library:
1) Go to File>New>New Module
2) Select "Import .JAR/.AAR Package" and click next.
3) Enter the path to .aar file and click finish.
4) Go to File>Project Settings (Ctrl+Shift+Alt+S).
5) Under "Modules," in left menu, select "app."
6) Go to "Dependencies tab.
7) Click the green "+" in the upper right corner.
8) Select "Module Dependency"
9) Select the new module from the list.Usage
For easy use, I have split up all the device information by the following:
1. Location
2. Ads
3. App
4. Battery
5. Device
6. Memory
7. Network
8. User Installed Apps
9. User ContactsLocation
```
val locationInfo = LocationInfo(this)
val location: DeviceLocation = locationInfo.location
```| Value | Function Name | Returns |
| ------------- |:-------------:| -----:|
| Latitude | ```getLatitude()``` | Double |
| Longitude | ```getLongitude()``` | Double |
| Address Line 1 | ```getAddressLine1()``` | String |
| City | ```getCity()``` | String |
| State | ```getState()``` | String |
| CountryCode | ```getCountryCode()``` | String |
| Postal Code | ```getPostalCode()``` | String |Ads
No Google play services needed!```
val ad = AdInfo(this)
ad.getAndroidAdId(object:AdInfo.AdIdCallback{
override fun onResponse(context: Context, ad: Ad) {
TODO("Not yet implemented")
}override fun onError(context: Context, message: String) {
TODO("Not yet implemented")
}
})
```| Value | Function Name | Returns |
| ------------- |:-------------:| -----:|
| AdvertisingId | ```getAdvertisingId()``` | String |
| Can Track ads | ```isAdDoNotTrack()``` | boolean |App
```
val app = App(this)
```| Value | Function Name | Returns |
| ------------- |:-------------:| -----:|
| App Name | ```getAppName()``` | String |
| Package Name | ```getPackageName()``` | String |
| Activity Name | ```getActivityName()``` | String |
| App Version Name | ```getAppVersionName()``` | String |
| App Version Code | ```getAppVersionCode()``` | Integer |Battery
```
val battery = Battery(this)
```| Value | Function Name | Returns |
| ------------- |:-------------:| -----:|
| Battery Percent | ```getBatteryPercent()``` | int |
| Is Phone Charging | ```isPhoneCharging()``` | boolean |
| Battery Health | ```getBatteryHealth()``` | String |
| Battery Technology | ```getBatteryTechnology()``` | String |
| Battery Temperature | ```getBatteryTemperature()``` | float |
| Battery Voltage | ```getBatteryVoltage()``` | int |
| Charging Source | ```getChargingSource()``` | String |
| Is Battery Present | ```isBatteryPresent()``` | boolean |Device
```
val device = Device(this)
```| Value | Function Name | Returns |
| ------------- |:-------------:| -----:|
| Release Build Version | ```getReleaseBuildVersion()``` | String |
| Build Version Code Name | ```getBuildVersionCodeName()``` | String |
| Manufacturer | ```getManufacturer()``` | String |
| Model | ```getModel()``` | String |
| Product | ```getProduct()``` | String |
| Fingerprint | ```getFingerprint()``` | String |
| Hardware | ```getHardware()``` | String |
| Radio Version | ```getRadioVersion()``` | String |
| Device | ```getDevice()``` | String |
| Board | ```getBoard()``` | String |
| Display Version | ```getDisplayVersion()``` | String |
| Build Brand | ```getBuildBrand()``` | String |
| Build Host | ```getBuildHost()``` | String |
| Build Time | ```getBuildTime()``` | long |
| Build User | ```getBuildUser()``` | String |
| Serial | ```getSerial()``` | String |
| Os Version | ```getOsVersion()``` | String |
| Language | ```getLanguage()``` | String |
| SDK Version | ```getSdkVersion()``` | int |
| Screen Density | ```getScreenDensity()``` | String |
| Screen Height | ```getScreenHeight()``` | int |
| Screen Density | ```getScreenWidth()``` | int |Memory
```
val memory = Memory(this)
```| Value | Function Name | Returns |
| ------------- |:-------------:| -----:|
| Has External SD Card | ```isHasExternalSDCard()``` | boolean |
| Total RAM | ```getTotalRAM()``` | long |
| Available Internal Memory Size | ```getAvailableInternalMemorySize()``` | long |
| Total Internal Memory Size | ```getTotalInternalMemorySize()``` | long |
| Available External Memory Size | ```getAvailableExternalMemorySize()``` | long |
| Total External Memory Size | ```getTotalExternalMemorySize()``` | String |Network
```
val network = Network(this)
```| Value | Function Name | Returns |
| ------------- |:-------------:| -----:|
| IMEI | ```getIMEI()``` | String |
| IMSI | ```getIMSI()``` | String |
| Phone Type | ```getPhoneType()``` | String |
| Phone Number | ```getPhoneNumber()``` | String |
| Operator | ```getOperator()``` | String |
| SIM Serial | ```getsIMSerial()``` | String |
| Network Class | ```getNetworkClass()``` | String |
| Network Type | ```getNetworkType()``` | String |
| Is SIM Locked | ```isSimNetworkLocked()``` | boolean |
| Is Nfc Present | ```isNfcPresent()``` | boolean |
| Is Nfc Enabled | ```isNfcEnabled()``` | boolean |
| Is Wifi Enabled | ```isWifiEnabled()``` | boolean |
| Is Network Available | ```isNetworkAvailable()``` | boolean |User Installed Apps
```
val userAppInfo = UserAppInfo(this)
val userApps:List = userAppInfo.getInstalledApps(true);
```| Value | Function Name | Returns |
| ------------- |:-------------:| -----:|
| App Name | ```getAppName()``` | String |
| Package Name | ```getPackageName()``` | String |
| Version Name | ```getVersionName()``` | String |
| Version Code | ```getVersionCode()``` | int |User Contacts
```
val userContactInfo = UserContactInfo(this)
val userContacts = userContactInfo.contacts
```| Value | Function Name | Returns |
| ------------- |:-------------:| -----:|
| Contact Name | ```getDisplayName()``` | String |
| Mobile Number | ```getMobileNumber()``` | String |
| Phone Type | ```phoneType()``` | String |How to get Permissions for android 6+
Easy! I have provided a small, easy wrapper for getting permissions for marshmellow devices.First, override onRequestPermissionsResult and call PermissionManager.handleResult(requestCode, permissions, grantResults);
```
private val permissionManager = PermissionManager(this)
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array,
grantResults: IntArray
) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults)permissionManager.handleResult(requestCode, permissions, grantResults);
}
```Now you can ask permission:
```
permissionManager.showPermissionDialog(permission)
.withDenyDialogEnabled(true)
.withDenyDialogMsg(mActivity.getString(R.string.permission_location))
.withCallback(object : PermissionCallback {
override fun onPermissionGranted(
permissions: Array,
grantResults: IntArray
) {
//you can handle what to do when permission is granted
}override fun onPermissionDismissed(permission: String) {
/**
* user has denied the permission. We can display a custom dialog
* to user asking for permission
*/
}override fun onPositiveButtonClicked(dialog: DialogInterface, which: Int) {
/**
* You can choose to open the
* app settings screen
* * */
val permissionUtils = PermissionUtils(this)
permissionUtils.openAppSettings()
}override fun onNegativeButtonClicked(dialog: DialogInterface, which: Int) {
/**
* The user has denied the permission!
* You need to handle this in your code
* * */
}
})
.build()
```Various options available in PermissionManager
| Value | Function Name | Returns |
| ------------- |:-------------:| -----:|
| To enable custom dialog when user has denied the permission | ```withDenyDialogEnabled()``` | boolean |
| To enable Rationale, explaining the need for the permission, the first time they have denied the permission | ```withRationaleEnabled()``` | boolean |
| Message to be displayed in the custom dialog | ```withDenyDialogMsg()``` | String |
| Title to be displayed in the custom dialog | ```withDenyDialogTitle()``` | String |
| Postive Button text to be displayed in the custom alert dialog | ```withDenyDialogPosBtnText()``` | String |
| Negative Button text to be displayed in the custom alert dialog | ```withDenyDialogNegBtnText()``` | String |
| Should display the negative button flag | ```withDenyDialogNegBtn()``` | boolean |
| Flag to cancel the dialog | ```isDialogCancellable()``` | boolean |Author
------
Klejvi Kapaj - @kl3jvi on GitHub, @kl3jvi on Twitter