Browse Source

24-03-2023

master
Krish 1 year ago
parent
commit
28d9fe5e59
9 changed files with 132 additions and 11 deletions
  1. +1
    -0
      .idea/gradle.xml
  2. +6
    -0
      .idea/vcs.xml
  3. +2
    -2
      app/src/main/AndroidManifest.xml
  4. +2
    -1
      app/src/main/java/com/example/beacondemo/Activity/DetailActivity.java
  5. +113
    -3
      app/src/main/java/com/example/beacondemo/Activity/MainActivity.java
  6. +2
    -1
      app/src/main/java/com/example/beacondemo/adapter/RecycleAdapter.java
  7. +1
    -1
      app/src/main/java/com/example/beacondemo/adapter/RecycleViewDivider.java
  8. +1
    -1
      app/src/main/res/layout/activity_detail.xml
  9. +4
    -2
      app/src/main/res/layout/activity_main.xml

+ 1
- 0
.idea/gradle.xml View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleMigrationSettings" migrationVersion="1" />
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>


+ 6
- 0
.idea/vcs.xml View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

+ 2
- 2
app/src/main/AndroidManifest.xml View File

@ -30,10 +30,10 @@
android:theme="@style/Theme.BeaconDemo"
tools:targetApi="31">
<activity
android:name=".DetailActivity"
android:name=".Activity.DetailActivity"
android:exported="false" />
<activity
android:name=".MainActivity"
android:name=".Activity.MainActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />


app/src/main/java/com/example/beacondemo/DetailActivity.java → app/src/main/java/com/example/beacondemo/Activity/DetailActivity.java View File

@ -1,4 +1,4 @@
package com.example.beacondemo;
package com.example.beacondemo.Activity;
import androidx.appcompat.app.AppCompatActivity;
@ -7,6 +7,7 @@ import android.util.Log;
import android.view.View;
import android.widget.TextView;
import com.example.beacondemo.R;
import com.minew.beaconplus.sdk.MTCentralManager;
import com.minew.beaconplus.sdk.MTConnectionHandler;
import com.minew.beaconplus.sdk.MTPeripheral;

app/src/main/java/com/example/beacondemo/MainActivity.java → app/src/main/java/com/example/beacondemo/Activity/MainActivity.java View File

@ -1,4 +1,4 @@
package com.example.beacondemo;
package com.example.beacondemo.Activity;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
@ -19,11 +19,31 @@ import android.util.Log;
import android.view.View;
import android.widget.Toast;
import com.example.beacondemo.BindView;
import com.example.beacondemo.R;
import com.example.beacondemo.adapter.RecycleAdapter;
import com.example.beacondemo.adapter.RecycleViewDivider;
import com.minew.beaconplus.sdk.MTCentralManager;
import com.minew.beaconplus.sdk.MTFrameHandler;
import com.minew.beaconplus.sdk.MTPeripheral;
import com.minew.beaconplus.sdk.enums.BluetoothState;
import com.minew.beaconplus.sdk.enums.ConnectionStatus;
import com.minew.beaconplus.sdk.enums.FrameType;
import com.minew.beaconplus.sdk.exception.MTException;
import com.minew.beaconplus.sdk.frames.AccFrame;
import com.minew.beaconplus.sdk.frames.ForceFrame;
import com.minew.beaconplus.sdk.frames.HTFrame;
import com.minew.beaconplus.sdk.frames.IBeaconFrame;
import com.minew.beaconplus.sdk.frames.InfoFrame;
import com.minew.beaconplus.sdk.frames.LightFrame;
import com.minew.beaconplus.sdk.frames.MinewFrame;
import com.minew.beaconplus.sdk.frames.PIRFrame;
import com.minew.beaconplus.sdk.frames.TamperProofFrame;
import com.minew.beaconplus.sdk.frames.TemperatureFrame;
import com.minew.beaconplus.sdk.frames.TlmFrame;
import com.minew.beaconplus.sdk.frames.TvocFrame;
import com.minew.beaconplus.sdk.frames.UidFrame;
import com.minew.beaconplus.sdk.frames.UrlFrame;
import com.minew.beaconplus.sdk.interfaces.ConnectionStatueListener;
import com.minew.beaconplus.sdk.interfaces.GetPasswordListener;
import com.minew.beaconplus.sdk.interfaces.MTCentralManagerListener;
@ -49,6 +69,8 @@ public class MainActivity extends AppCompatActivity {
public static MTPeripheral mtPeripheral;
private static final int REQUEST_FINE_LOCATION = 125;
ArrayList<MinewFrame> advFrames;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@ -63,6 +85,11 @@ public class MainActivity extends AppCompatActivity {
initManager();
getRequiredPermissions();
initListener();
scanDevice();
}
private void scanDevice(){
}
private boolean ensureBleExists() {
@ -100,6 +127,87 @@ public class MainActivity extends AppCompatActivity {
private void initData() {
//三星手机系统可能会限制息屏下扫描导致息屏后无法获取到广播数据
mMtCentralManager.startScan();
mMtCentralManager.setMTCentralManagerListener(new MTCentralManagerListener() {
@Override
public void onScanedPeripheral(final List<MTPeripheral> peripherals) {
for (MTPeripheral mtPeripheral : peripherals) {
// get FrameHandler of a device.
MTFrameHandler mtFrameHandler = mtPeripheral.mMTFrameHandler;
String mac = mtFrameHandler.getMac(); //mac address of device
String name = mtFrameHandler.getName(); // name of device
int battery = mtFrameHandler.getBattery(); //battery
int rssi = mtFrameHandler.getRssi(); //rssi
// all data frames of devicesuch as:iBeaconUIDURL...
advFrames = mtFrameHandler.getAdvFrames();
/*for (MinewFrame minewFrame : advFrames) {
FrameType frameType = minewFrame.getFrameType();
switch (frameType) {
case FrameiBeacon://iBeacon
IBeaconFrame iBeaconFrame = (IBeaconFrame) minewFrame;
Log.v("beaconplus", iBeaconFrame.getUuid() + iBeaconFrame.getMajor() + iBeaconFrame.getMinor());
break;
case FrameUID://uid
UidFrame uidFrame = (UidFrame) minewFrame;
Log.v("beaconplus", uidFrame.getNamespaceId() + uidFrame.getInstanceId());
break;
case FrameAccSensor:
AccFrame accFrame = (AccFrame) minewFrame;//acc
Log.v("beaconplus", String.valueOf(accFrame.getXAxis() + accFrame.getYAxis() + accFrame.getZAxis()));
break;
case FrameHTSensor:
HTFrame htFrame = (HTFrame) minewFrame;//ht
Log.v("beaconplus", String.valueOf(htFrame.getTemperature() + htFrame.getHumidity()));
break;
case FrameTLM:
TlmFrame tlmFrame = (TlmFrame) minewFrame;//tlm
Log.v("beaconplus", String.valueOf(tlmFrame.getTemperature() + tlmFrame.getBatteryVol() + tlmFrame.getSecCount() + tlmFrame.getAdvCount()));
break;
case FrameURL:
UrlFrame urlFrame = (UrlFrame) minewFrame;//url
Log.v("beaconplus", "Link:" + urlFrame.getUrlString() + "Rssi @ 0m:" + urlFrame.getTxPower());
break;
case FrameLightSensor:
LightFrame lightFrame = (LightFrame) minewFrame;//light
Log.v("beaconplus", "battery:" + lightFrame.getBattery() + "%" + lightFrame.getLuxValue());
break;
case FrameForceSensor:
ForceFrame forceFrame = ((ForceFrame) minewFrame);//force
Log.v("beaconplus", "battery:" + forceFrame.getBattery() + "%" + "force:" + forceFrame.getForce() + "gram");
break;
case FramePIRSensor:
PIRFrame pirFrame = ((PIRFrame) minewFrame);//pir
Log.v("beaconplus", "battery:" + pirFrame.getBattery() + "%" + "PIR:", pirFrame.getValue());
break;
case FrameTempSensor://temp
TemperatureFrame temperatureFrame = (TemperatureFrame) minewFrame;
Log.v("beaconplus", "battery:" + temperatureFrame.getBattery() + "%,temperature:" + String.format("%.2f", temperatureFrame.getValue()) + "°C");
break;
case FrameTVOCSensor://tvoc
TvocFrame tvocFrame = (TvocFrame) minewFrame;
Log.v("beaconplus", "battery:" + tvocFrame.getBattery() + ",TVOC:"+ tvocFrame.getValue() + "ppb," + "battery:" +tvocFrame.getBattery() + "mV");
break;
case FrameLineBeacon://FrameLineBeacon
FrameLineBeacon lineBeacon = ((FrameLineBeacon) minewFrame);
Log.v("beaconplus", "Hwid:" + lineBeacon.getHwid()
+ ",Rssi@1m:", lineBeacon.getTxPower()
+ ",authentication:"lineBeacon.getAuthentication()
+ ",timesTamp:" + lineBeacon.getTimesTamp());
break;
case TamperProofFrame://TamperProofFrame
TamperProofFrame tamperProofFrame = ((TamperProofFrame) minewFrame);//
Log.v("beaconplus", "battery:" + tamperProofFrame.getBattery());
break;
case InfoFrame://InfoFrame
InfoFrame infoFrame = ((InfoFrame) minewFrame);//
Log.v("beaconplus", infoFrame.getMajor() + infoFrame.getMinor() + infoFrame.getBatteryVoltage());
break;
default:
break;
}
}*/
}
}
});
}
private void initView() {
@ -107,8 +215,8 @@ public class MainActivity extends AppCompatActivity {
mRecycle.setLayoutManager(layoutManager);
mAdapter = new RecycleAdapter();
mRecycle.setAdapter(mAdapter);
mRecycle.addItemDecoration(new RecycleViewDivider(this, LinearLayoutManager
.HORIZONTAL));
/*mRecycle.addItemDecoration(new RecycleViewDivider(this, LinearLayoutManager
.HORIZONTAL));*/
}
private void initManager() {
@ -122,6 +230,7 @@ public class MainActivity extends AppCompatActivity {
break;
case BluetoothStatePowerOff:
Log.e("tag", "BluetoothStatePowerOff");
break;
case BluetoothStatePowerOn:
Log.e("tag", "BluetoothStatePowerOn");
@ -137,6 +246,7 @@ public class MainActivity extends AppCompatActivity {
break;
case BluetoothStatePowerOff:
Log.e("tag", "BluetoothStatePowerOff");
showBLEDialog();
break;
case BluetoothStatePowerOn:
Log.e("tag", "BluetoothStatePowerOn");

app/src/main/java/com/example/beacondemo/RecycleAdapter.java → app/src/main/java/com/example/beacondemo/adapter/RecycleAdapter.java View File

@ -1,4 +1,4 @@
package com.example.beacondemo;
package com.example.beacondemo.adapter;
import android.view.View;
import android.view.ViewGroup;
@ -6,6 +6,7 @@ import android.widget.TextView;
import androidx.recyclerview.widget.RecyclerView;
import com.example.beacondemo.R;
import com.minew.beaconplus.sdk.MTPeripheral;
import java.util.List;

app/src/main/java/com/example/beacondemo/RecycleViewDivider.java → app/src/main/java/com/example/beacondemo/adapter/RecycleViewDivider.java View File

@ -1,4 +1,4 @@
package com.example.beacondemo;
package com.example.beacondemo.adapter;
import android.content.Context;
import android.content.res.TypedArray;

+ 1
- 1
app/src/main/res/layout/activity_detail.xml View File

@ -6,7 +6,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".DetailActivity">
tools:context=".Activity.DetailActivity">
<RelativeLayout
android:layout_width="match_parent"


+ 4
- 2
app/src/main/res/layout/activity_main.xml View File

@ -5,12 +5,14 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
tools:context=".Activity.MainActivity"
>
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recycle"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:layout_height="match_parent"
>
</androidx.recyclerview.widget.RecyclerView>

Loading…
Cancel
Save