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.
As part of the process of my learning kotlin, I migrated the library to support Kotlin as well. If you would like to view the Kotlin version of the library - please checkout branch migrate_to_kotlin
Library also provides option to ask permissions for Marshmellow devices!
Donwload the sample app on the Google Play Store and check out all the features
Gradle Dependecydependencies {
implementation 'com.an.deviceinfo:deviceinfo:0.1.5'
}
Maven Dependecy
<dependency>
<groupId>com.an.deviceinfo</groupId>
<artifactId>deviceinfo</artifactId>
<version>0.1.5</version>
<type>pom</type>
</dependency>
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.
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 Contacts
LocationInfo locationInfo = new LocationInfo(this);
DeviceLocation location = locationInfo.getLocation();
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 |
AdInfo adInfo = new AdInfo(this);
adInfo.getAndroidAdId(new new AdInfo.AdIdCallback() {
@Override
public void onResponse(Ad ad) {
String advertisingId = ad.getAdvertisingId();
Boolean canTrackAds = ad.isAdDoNotTrack();
}
});
Value | Function Name | Returns |
---|---|---|
AdvertisingId | getAdvertisingId() |
String |
Can Track ads | isAdDoNotTrack() |
boolean |
App app = new 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 battery = new 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 device = new 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 memory = new 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 network = new 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 |
UserAppInfo userAppInfo = new UserAppInfo(this);
List<UserApps> userApps = userAppInfo.getInstalledApps(boolean includeSystemApps);
Value | Function Name | Returns |
---|---|---|
App Name | getAppName() |
String |
Package Name | getPackageName() |
String |
Version Name | getVersionName() |
String |
Version Code | getVersionCode() |
int |
UserContactInfo userContactInfo = new UserContactInfo(mActivity);
List<UserContacts> userContacts = userContactInfo.getContacts();
Value | Function Name | Returns |
---|---|---|
Contact Name | getDisplayName() |
String |
Mobile Number | getMobileNumber() |
String |
Phone Type | phoneType() |
String |
First, override onRequestPermissionsResult and call PermissionManager.handleResult(requestCode, permissions, grantResults);
PermissionManager permissionManager = new PermissionManager(this);
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
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(new PermissionManager.PermissionCallback() {
@Override
public void onPermissionGranted(String[] permissions, int[] grantResults) {
//you can handle what to do when permission is granted
}
@Override
public void onPermissionDismissed(String permission) {
/**
* user has denied the permission. We can display a custom dialog
* to user asking for permission
* */
}
@Override
public void onPositiveButtonClicked(DialogInterface dialog, int which) {
/**
* You can choose to open the
* app settings screen
* * */
PermissionUtils permissionUtils = new PermissionUtils(this);
permissionUtils.openAppSettings();
}
@Override
public void onNegativeButtonClicked(DialogInterface dialog, int which) {
/**
* The user has denied the permission!
* You need to handle this in your code
* * */
}
})
.build();
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 |
Anitaa Murthy [email protected]