2e2ec8271a1f23c9ae765fb6393dad18fa4fc720.svn-base 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. package eVVM.apk.ui.home;
  2. import android.Manifest;
  3. import android.app.PendingIntent;
  4. import android.content.Intent;
  5. import android.content.pm.PackageManager;
  6. import android.location.Criteria;
  7. import android.location.Location;
  8. import android.location.LocationManager;
  9. import android.nfc.NfcAdapter;
  10. import android.os.Build;
  11. import android.os.Bundle;
  12. import android.support.annotation.NonNull;
  13. import android.support.v4.app.ActivityCompat;
  14. import android.util.Log;
  15. import android.widget.Toast;
  16. import eVVM.apk.helper.GPS.LocationUtils;
  17. import eVVM.apk.helper.SPUtils;
  18. import eVVM.apk.mvp.MvpActivity;
  19. import eVVM.apk.ui.home.uploadChip.UploadChipPresenter;
  20. public class BaseNfcActivity extends BaseGPSActivity {
  21. protected NfcAdapter mNfcAdapter;
  22. private PendingIntent mPendingIntent;
  23. protected int chipNumberEndIndex = 86;
  24. /**
  25. * onCreat->onStart->onResume->onPause->onStop->onDestroy
  26. * 启动Activity,界面可见时.
  27. */
  28. @Override
  29. protected void onStart() {
  30. super.onStart();
  31. //此处adapter需要重新获取,否则无法获取message
  32. mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
  33. if (mNfcAdapter == null) {
  34. toast("设备不支持NFC!");
  35. finish();
  36. return;
  37. }
  38. if (!mNfcAdapter.isEnabled()) {
  39. toast("请在系统设置中先启用NFC功能!");
  40. finish();
  41. return;
  42. }
  43. //一旦截获NFC消息,就会通过PendingIntent调用窗口
  44. mPendingIntent = PendingIntent.getActivity(this, 0, new Intent(this, getClass()), 0);
  45. }
  46. /**
  47. * 获得焦点,按钮可以点击
  48. */
  49. @Override
  50. public void onResume() {
  51. super.onResume();
  52. //设置处理优于所有其他NFC的处理
  53. if (mNfcAdapter != null)
  54. mNfcAdapter.enableForegroundDispatch(this, mPendingIntent, null, null);
  55. }
  56. /**
  57. * 暂停Activity,界面获取焦点,按钮可以点击
  58. */
  59. @Override
  60. public void onPause() {
  61. super.onPause();
  62. //恢复默认状态
  63. if (mNfcAdapter != null)
  64. mNfcAdapter.disableForegroundDispatch(this);
  65. }
  66. @Override
  67. protected int getLayoutId() {
  68. return 0;
  69. }
  70. @Override
  71. protected int getTitleId() {
  72. return 0;
  73. }
  74. @Override
  75. protected void initView() {
  76. }
  77. @Override
  78. protected void initData() {
  79. }
  80. @Override
  81. public void onPointerCaptureChanged(boolean hasCapture) {
  82. }
  83. @Override
  84. protected UploadChipPresenter createPresenter() {
  85. return new UploadChipPresenter();
  86. }
  87. @Override
  88. protected void onStop() {
  89. super.onStop();
  90. }
  91. }