Git Product home page Git Product logo

deviceinfo-sample's Introduction

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

Get it on Google Play

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

API

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 = 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 = 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]

Twitter Google Plus Linkedin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.