24-03-2023
This commit is contained in:
		
							parent
							
								
									a4f3ec0890
								
							
						
					
					
						commit
						28d9fe5e59
					
				
							
								
								
									
										1
									
								
								.idea/gradle.xml
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										1
									
								
								.idea/gradle.xml
									
									
									
										generated
									
									
									
								
							| @ -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
									
								
								.idea/vcs.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.idea/vcs.xml
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @ -0,0 +1,6 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <project version="4"> | ||||
|   <component name="VcsDirectoryMappings"> | ||||
|     <mapping directory="" vcs="Git" /> | ||||
|   </component> | ||||
| </project> | ||||
| @ -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" /> | ||||
|  | ||||
| @ -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; | ||||
| @ -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 device(such as:iBeacon,UID,URL...) | ||||
|                     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"); | ||||
| @ -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; | ||||
| @ -1,4 +1,4 @@ | ||||
| package com.example.beacondemo; | ||||
| package com.example.beacondemo.adapter; | ||||
| 
 | ||||
| import android.content.Context; | ||||
| import android.content.res.TypedArray; | ||||
| @ -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" | ||||
|  | ||||
| @ -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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user