|
|
@@ -1,51 +1,40 @@
|
|
|
package com.example.watch.ui.activity
|
|
|
|
|
|
-import android.Manifest
|
|
|
-import android.bluetooth.BluetoothAdapter
|
|
|
-import android.bluetooth.BluetoothDevice
|
|
|
-import android.bluetooth.BluetoothManager
|
|
|
-import android.bluetooth.le.BluetoothLeScanner
|
|
|
-import android.bluetooth.le.ScanCallback
|
|
|
-import android.bluetooth.le.ScanResult
|
|
|
-import android.content.Context
|
|
|
import android.content.Intent
|
|
|
-import android.content.pm.PackageManager
|
|
|
import android.os.Bundle
|
|
|
-import android.os.Handler
|
|
|
-import android.view.Window
|
|
|
-import android.view.WindowManager
|
|
|
-import android.widget.Button
|
|
|
import android.widget.Toast
|
|
|
import androidx.appcompat.app.AppCompatActivity
|
|
|
-import androidx.core.app.ActivityCompat
|
|
|
import com.example.watch.R
|
|
|
-import kotlinx.android.synthetic.main.activity_main.*
|
|
|
|
|
|
|
|
|
class MainActivity : AppCompatActivity() {
|
|
|
-
|
|
|
- // 声明变量
|
|
|
- private val REQUEST_BLUETOOTH_TURN_ON = 1
|
|
|
- private val BLE_SCAN_PERIOD: Long = 10000
|
|
|
- private lateinit var bleAdapter: BluetoothAdapter
|
|
|
- private lateinit var bleManager: BluetoothManager
|
|
|
- private lateinit var bleScanner: BluetoothLeScanner
|
|
|
- private lateinit var bleScanCallback: BleScanCallback
|
|
|
- private var bleScanResults = mutableMapOf<String?, BluetoothDevice?>()
|
|
|
- private lateinit var bleScanHandler: Handler
|
|
|
-
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
|
super.onCreate(savedInstanceState)
|
|
|
|
|
|
-// 去掉顶部状态栏
|
|
|
- requestWindowFeature(Window.FEATURE_NO_TITLE)
|
|
|
- window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
|
|
|
- setContentView(R.layout.activity_main)
|
|
|
+ val sharedPreferences = getSharedPreferences("FirstRun", 0)
|
|
|
+ val first_run = sharedPreferences.getBoolean("First", true)
|
|
|
+ if (first_run) {
|
|
|
+ sharedPreferences.edit().putBoolean("First", false).commit()
|
|
|
+ val ViewPageActivityIntent = Intent(this, ViewPageActivity::class.java)
|
|
|
+ startActivity(ViewPageActivityIntent)
|
|
|
+ } else {
|
|
|
+ setContentView(R.layout.activity_main)
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
-//// 点击按钮Toast
|
|
|
+// 点击按钮Toast
|
|
|
// val button4 = findViewById<Button>(R.id.CONNECT)
|
|
|
// button4.setOnClickListener {
|
|
|
-// Toast.makeText(this, "hello world!", Toast.LENGTH_LONG).show()
|
|
|
+// Toast.makeText(this, "112233!", Toast.LENGTH_LONG).show();
|
|
|
+//// 获取蓝牙权限
|
|
|
+// val mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter()
|
|
|
+// if (mBluetoothAdapter == null) {
|
|
|
+// // Device does not support Bluetooth
|
|
|
+// Toast.makeText(this, "当前设备不支持蓝牙!", Toast.LENGTH_LONG).show();
|
|
|
+// } else {
|
|
|
+// Toast.makeText(this, "当前设备不支持蓝牙!", Toast.LENGTH_LONG).show();
|
|
|
+// }
|
|
|
// }
|
|
|
|
|
|
|
|
|
@@ -53,87 +42,23 @@ class MainActivity : AppCompatActivity() {
|
|
|
// val intent = Intent(this, BaseActivity().javaClass)
|
|
|
// startActivity(intent)
|
|
|
|
|
|
- val connectBtn = findViewById<Button>(R.id.CONNECT)
|
|
|
-
|
|
|
- connectBtn.setOnClickListener {
|
|
|
- bleScanHandler = Handler()
|
|
|
- //蓝牙管理,这是系统服务可以通过getSystemService(BLUETOOTH_SERVICE)的方法获取实例
|
|
|
- bleManager = getSystemService(Context.BLUETOOTH_SERVICE) as BluetoothManager
|
|
|
- //通过蓝牙管理实例获取适配器,然后通过扫描方法(scan)获取设备(device)
|
|
|
- bleAdapter = bleManager.adapter
|
|
|
- if (!bleAdapter.isEnabled) {
|
|
|
- val bluetoothTurnOn = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
|
|
|
- startActivityForResult(bluetoothTurnOn, REQUEST_BLUETOOTH_TURN_ON)
|
|
|
- } else {
|
|
|
- bleStartScan.run()
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- //start scan
|
|
|
- private val bleStartScan = Runnable {
|
|
|
- bleScanner = bleAdapter.bluetoothLeScanner
|
|
|
- bleScanCallback = BleScanCallback(bleScanResults)
|
|
|
- bleScanCallback.setContext(this.applicationContext)
|
|
|
- bleScanner.startScan(bleScanCallback)
|
|
|
- Toast.makeText(this.applicationContext, "蓝牙BLE扫描开始", Toast.LENGTH_SHORT).show()
|
|
|
- bleScanHandler.postDelayed(bleStopScan, this.BLE_SCAN_PERIOD)
|
|
|
}
|
|
|
|
|
|
- private val bleStopScan = Runnable {
|
|
|
- if (bleScanner != null) {
|
|
|
- bleScanner.stopScan(bleScanCallback)
|
|
|
- }
|
|
|
- Toast.makeText(this.applicationContext, "蓝牙BLE扫描结束", Toast.LENGTH_SHORT).show()
|
|
|
- }
|
|
|
|
|
|
- class BleScanCallback(resultMap: MutableMap<String?, BluetoothDevice?>) : ScanCallback() {
|
|
|
- var resultOfScan = resultMap
|
|
|
- private var context: Context? = null
|
|
|
-
|
|
|
- fun setContext(context: Context) {
|
|
|
- this.context = context
|
|
|
- }
|
|
|
-
|
|
|
- override fun onScanResult(callbackType: Int, result: ScanResult?) {
|
|
|
- addScanResult(result)
|
|
|
- }
|
|
|
-
|
|
|
- override fun onBatchScanResults(results: MutableList<ScanResult>?) {
|
|
|
- results?.forEach { result -> addScanResult(result) }
|
|
|
- }
|
|
|
+ private fun startScan() {
|
|
|
+ TODO("Not yet implemented")
|
|
|
+ }
|
|
|
|
|
|
- override fun onScanFailed(errorCode: Int) {
|
|
|
- Toast.makeText(this.context, "蓝牙BLE扫描失败" + "Error Code: " + errorCode, Toast.LENGTH_SHORT).show()
|
|
|
- }
|
|
|
+ private fun initView() {
|
|
|
|
|
|
- fun addScanResult(scanResult: ScanResult?) {
|
|
|
- val bleDevice = scanResult?.device
|
|
|
- val deviceAddress = bleDevice?.address
|
|
|
- if (!resultOfScan.contains(deviceAddress)) {
|
|
|
- resultOfScan.put(deviceAddress, bleDevice)
|
|
|
- if (this.context != null) {
|
|
|
- Toast.makeText(this.context, bleDevice?.name + ": " + bleDevice?.address, Toast.LENGTH_SHORT).show()
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+// val navBatton = findViewById<Button>(R.id.navigation_second)
|
|
|
+// navBatton.setOnClickListener {
|
|
|
+// // 跳到其他页面
|
|
|
+// val historyIntent = Intent(this, SearchActivity::class.java)
|
|
|
+// this.startActivity(historyIntent)
|
|
|
+// }
|
|
|
|
|
|
- override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
|
|
|
- super.onActivityResult(requestCode, resultCode, data)
|
|
|
- when (requestCode) {
|
|
|
- REQUEST_BLUETOOTH_TURN_ON -> {
|
|
|
- when (resultCode) {
|
|
|
- RESULT_OK -> {
|
|
|
- Toast.makeText(this.applicationContext, "蓝牙开启成功", Toast.LENGTH_SHORT).show()
|
|
|
- bleStartScan.run()
|
|
|
- }
|
|
|
- RESULT_CANCELED -> {
|
|
|
- Toast.makeText(this.applicationContext, "蓝牙开启失败", Toast.LENGTH_SHORT).show()
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
}
|