DeviceInfo


Source link: https://github.com/anitaa1990/DeviceInfo-Sample

DeviceInfo-Sample

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!

Sample App

Donwload the sample app on the Google Play Store and check out all the features

How to integrate the library in your app?

Gradle Dependecy
dependencies {

compile 'com.an.deviceinfo:deviceinfo:0.1.0' 
}

Maven Dependecy

<dependency>
<groupId>com.an.deviceinfo</groupId>
<artifactId>deviceinfo</artifactId>
<version>0.1.0</version>
<type>pom</type> </dependency>

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 Contacts

Location

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

Ads

No Google play services needed!
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 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 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 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 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 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

User Installed Apps

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

User Contacts

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

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);

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();
 

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

Created and maintained by:

Anitaa Murthy [email protected]

Resources

A delightful progress animation that you'll fall in love with, very easily.

Play store downloads/updates app in sequence because of the performance issues but still there are the cases when you need to download/upload things in parallel like AppStore or WhatsApp.

Configurable custom crop widget for Android.

AndStatus is an Open Source low traffic social networking client with tree-like threaded conversations. It supports different Social networks, including GNU social (e.g. Quitter.se, LoadAverage, etc.), Twitter and Pump.io.

AndStatus can combine your feeds from all networks into one Timeline, and it allows you to read and post even when you are offline.

Simple Ringtone Picker dialog which allows you to pick different sounds from ringtone, alarm tone, notification tone and music from external storage.

Define the fonts of your Android project directly from the build.gradle.

Topics


2D Engines   3D Engines   9-Patch   Action Bars   Activities   ADB   Advertisements   Analytics   Animations   ANR   AOP   API   APK   APT   Architecture   Audio   Autocomplete   Background Processing   Backward Compatibility   Badges   Bar Codes   Benchmarking   Bitmaps   Bluetooth   Blur Effects   Bread Crumbs   BRMS   Browser Extensions   Build Systems   Bundles   Buttons   Caching   Camera   Canvas   Cards   Carousels   Changelog   Checkboxes   Cloud Storages   Color Analysis   Color Pickers   Colors   Comet/Push   Compass Sensors   Conferences   Content Providers   Continuous Integration   Crash Reports   Credit Cards   Credits   CSV   Curl/Flip   Data Binding   Data Generators   Data Structures   Database   Database Browsers   Date &   Debugging   Decompilers   Deep Links   Dependency Injections   Design   Design Patterns   Dex   Dialogs   Distributed Computing   Distribution Platforms   Download Managers   Drawables   Emoji   Emulators   EPUB   Equalizers &   Event Buses   Exception Handling   Face Recognition   Feedback &   File System   File/Directory   Fingerprint   Floating Action   Fonts   Forms   Fragments   FRP   FSM   Functional Programming   Gamepads   Games   Geocaching   Gestures   GIF   Glow Pad   Gradle Plugins   Graphics   Grid Views   Highlighting   HTML   HTTP Mocking   Icons   IDE   IDE Plugins   Image Croppers   Image Loaders   Image Pickers   Image Processing   Image Views   Instrumentation   Intents   Job Schedulers   JSON   Keyboard   Kotlin   Layouts   Library Demos   List View   List Views   Localization   Location   Lock Patterns   Logcat   Logging   Mails   Maps   Markdown   Mathematics   Maven Plugins   MBaaS   Media   Menus   Messaging   MIME   Mobile Web   Native Image   Navigation   NDK   Networking   NFC   NoSQL   Number Pickers   OAuth   Object Mocking   OCR Engines   OpenGL   ORM   Other Pickers   Parallax List   Parcelables   Particle Systems   Password Inputs   PDF   Permissions   Physics Engines   Platforms   Plugin Frameworks   Preferences   Progress Indicators   ProGuard   Properties   Protocol Buffer   Pull To   Purchases   Push/Pull   QR Codes   Quick Return   Radio Buttons   Range Bars   Ratings   Recycler Views   Resources   REST   Ripple Effects   RSS   Screenshots   Scripting   Scroll Views   SDK   Search Inputs   Security   Sensors   Services   Showcase Views   Signatures   Sliding Panels   Snackbars   SOAP   Social Networks   Spannable   Spinners   Splash Screens   SSH   Static Analysis   Status Bars   Styling   SVG   System   Tags   Task Managers   TDD &   Template Engines   Testing   Testing Tools   Text Formatting   Text Views   Text Watchers   Text-to   Toasts   Toolkits For   Tools   Tooltips   Trainings   TV   Twitter   Updaters   USB   User Stories   Utils   Validation   Video   View Adapters   View Pagers   Views   Watch Face   Wearable Data   Wearables   Weather   Web Tools   Web Views   WebRTC   WebSockets   Wheel Widgets   Wi-Fi   Widgets   Windows   Wizards   XML   XMPP   YAML   ZIP Codes