package com.camnter.newlife.ui.activity.util; import android.Manifest; import android.annotation.SuppressLint; import android.content.pm.PackageManager; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.widget.TextView; import com.camnter.newlife.R; import com.camnter.newlife.core.activity.BaseAppCompatActivity; import com.camnter.newlife.utils.DeviceUtils; /** * Description:DeviceUtilActivity * Created by:CaMnter * Time:2015-10-13 17:48 */ public class DeviceUtilActivity extends BaseAppCompatActivity { public static final int REQUEST_READ_PHONE_STATE = 61; private TextView deviceIdTV; private TextView versionCodeTV; private TextView versionNameTV; private TextView phoneBrandTV; private TextView phoneModelTV; private TextView apiLevelTV; private TextView apiVersionTV; private TextView appProcessIdTV; private TextView appNameTV; private TextView metaDataTV; /** * Fill in layout id * * @return layout id */ @Override protected int getLayoutId() { return R.layout.device_util; } /** * Initialize the view in the layout * * @param savedInstanceState savedInstanceState */ @Override protected void initViews(Bundle savedInstanceState) { this.deviceIdTV = (TextView) this.findViewById(R.id.device_id_tv); this.versionCodeTV = (TextView) this.findViewById(R.id.version_code_tv); this.versionNameTV = (TextView) this.findViewById(R.id.version_name_tv); this.phoneBrandTV = (TextView) this.findViewById(R.id.phone_brand_tv); this.phoneModelTV = (TextView) this.findViewById(R.id.phone_model_tv); this.apiLevelTV = (TextView) this.findViewById(R.id.phone_api_level_tv); this.apiVersionTV = (TextView) this.findViewById(R.id.phone_api_version_tv); this.appProcessIdTV = (TextView) this.findViewById(R.id.app_process_id_tv); this.appNameTV = (TextView) this.findViewById(R.id.app_name_tv); this.metaDataTV = (TextView) this.findViewById(R.id.meta_data_tv); } /** * Initialize the View of the listener */ @Override protected void initListeners() { } /** * Initialize the Activity data */ @Override protected void initData() { if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) { // Should we show an explanation? if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.READ_PHONE_STATE)) { // Show an expanation to the user *asynchronously* -- don't block // this thread waiting for the user's response! After the user // sees the explanation, try again to request the permission. } else { // No explanation needed, we can request the permission. ActivityCompat.requestPermissions(this, new String[] { Manifest.permission.READ_PHONE_STATE }, REQUEST_READ_PHONE_STATE); // MY_PERMISSIONS_REQUEST_READ_CONTACTS is an // app-defined int constant. The callback method gets the // result of the request. } } else { this.setData(); } } @SuppressLint("SetTextI18n") private void setData() { this.deviceIdTV.setText(DeviceUtils.getDeviceId(this)); this.versionCodeTV.setText(DeviceUtils.getVersionCode(this)); this.versionNameTV.setText(DeviceUtils.getVersionName(this)); this.phoneBrandTV.setText(DeviceUtils.getPhoneBrand()); this.phoneModelTV.setText(DeviceUtils.getPhoneModel()); this.apiLevelTV.setText(DeviceUtils.getBuildLevel() + ""); this.apiVersionTV.setText(DeviceUtils.getBuildVersion()); this.appProcessIdTV.setText(DeviceUtils.getAppProcessId() + ""); this.appNameTV.setText(DeviceUtils.getAppProcessName(this, DeviceUtils.getAppProcessId())); this.metaDataTV.setText(DeviceUtils.getMetaData(this, "DEBUG")); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String permissions[], @NonNull int[] grantResults) { switch (requestCode) { case REQUEST_READ_PHONE_STATE: { // If request is cancelled, the result arrays are empty. if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { // permission was granted, yay! Do the // contacts-related task you need to do. this.setData(); } else { // permission denied, boo! Disable the // functionality that depends on this permission. this.showToast("没有权限访问"); } } // other 'case' lines to check for other // permissions this app might request } } }