Bluetoothデバイスを登録済みか判定する機能を追加 #13
|
@ -2,9 +2,16 @@ package com.example.childguard;
|
|||
|
||||
import static android.content.ContentValues.TAG;
|
||||
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.core.content.res.ResourcesCompat;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.fragment.app.FragmentManager;
|
||||
|
@ -37,6 +44,7 @@ import com.google.firebase.firestore.FirebaseFirestore;
|
|||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* A simple {@link Fragment} subclass.
|
||||
|
@ -172,11 +180,13 @@ public class HomeFragment extends Fragment {
|
|||
|
||||
//デバック用ボタン
|
||||
view.findViewById(R.id.bt_debug).setOnClickListener( v -> {
|
||||
Toast.makeText(getContext(), PreferenceManager.getDefaultSharedPreferences(getContext().getApplicationContext()).getString("bluetooth_device1", "none"), Toast.LENGTH_SHORT).show();
|
||||
Toast.makeText(getContext(), PreferenceManager.getDefaultSharedPreferences(getContext().getApplicationContext()).getString("bluetooth_device_id", "none"), Toast.LENGTH_SHORT).show();
|
||||
});
|
||||
|
||||
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onResume() {
|
||||
super.onResume();
|
||||
|
@ -212,4 +222,16 @@ public class HomeFragment extends Fragment {
|
|||
// フラグメントトランザクションをコミット
|
||||
transaction.commit();
|
||||
}
|
||||
}
|
||||
|
||||
public void bluetooth_judge(String device_id){
|
||||
if(device_id.equals(PreferenceManager.getDefaultSharedPreferences(requireContext().getApplicationContext()).getString("Bluetooth_device_id","none"))){
|
||||
Log.d(" ","登録デバイスです");
|
||||
}
|
||||
else {
|
||||
Log.d(" ","登録デバイスではないです");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -10,8 +10,12 @@ import android.annotation.SuppressLint;
|
|||
import android.app.NotificationChannel;
|
||||
import android.app.NotificationManager;
|
||||
import android.bluetooth.BluetoothAdapter;
|
||||
import android.bluetooth.BluetoothDevice;
|
||||
import android.bluetooth.BluetoothManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.Vibrator;
|
||||
|
@ -24,10 +28,16 @@ import java.util.Date;
|
|||
import java.util.Random;
|
||||
import java.util.UUID;
|
||||
|
||||
import android.preference.PreferenceManager;
|
||||
import android.util.Log;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
import androidx.annotation.Nullable;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.graphics.Insets;
|
||||
import androidx.core.view.ViewCompat;
|
||||
import androidx.core.view.WindowInsetsCompat;
|
||||
|
||||
import com.google.firebase.firestore.DocumentReference;
|
||||
import com.google.firebase.firestore.DocumentSnapshot;
|
||||
import com.google.firebase.firestore.EventListener;
|
||||
|
@ -111,8 +121,60 @@ public class MainActivity extends AppCompatActivity {
|
|||
flg = true;
|
||||
}
|
||||
});
|
||||
|
||||
//Bluetooth検知機能
|
||||
IntentFilter intentFilter = new IntentFilter();
|
||||
intentFilter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED);
|
||||
intentFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
|
||||
|
||||
if (ActivityCompat.checkSelfPermission(this, android.Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
|
||||
Log.d("BT", "No permission to connect bluetooth devices");
|
||||
return;
|
||||
}
|
||||
else {
|
||||
Log.d("BT", "Permission to connect bluetooth devices granted");
|
||||
}
|
||||
registerReceiver(receiver, intentFilter);
|
||||
|
||||
}
|
||||
|
||||
|
||||
//Bluetoothの検知機能
|
||||
private final BroadcastReceiver receiver = new BroadcastReceiver() {
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
String action = intent.getAction(); // may need to chain this to a recognizing function
|
||||
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
|
||||
HomeFragment homeFragment=new HomeFragment();
|
||||
|
||||
if (ActivityCompat.checkSelfPermission(context, android.Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
|
||||
Log.d("BT", "No permission to connect bluetooth devices");
|
||||
return;
|
||||
}
|
||||
String deviceName = device.getName();
|
||||
String deviceHardwareAddress = device.getAddress(); // MAC address
|
||||
|
||||
if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) {
|
||||
//Do something if connected
|
||||
Log.d("BT", "Device connected");
|
||||
|
||||
String registeredId = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).getString("bluetooth_device_id", "none");
|
||||
|
||||
Log.d("BT_Judge", "Registered: " + registeredId);
|
||||
|
||||
if (deviceHardwareAddress.equals(registeredId)) {
|
||||
Log.d("BT_Judge", "登録済み");
|
||||
} else Log.d("BT_Judge", "未登録");
|
||||
|
||||
} else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) {
|
||||
//Do something if disconnected
|
||||
Log.d("BT", "Device disconnected");
|
||||
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
//↓通知のやつ
|
||||
public void notifyMain() {
|
||||
//↓通知をする際に起動するバイブレーション
|
||||
|
|
|
@ -54,7 +54,6 @@ public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ItemVi
|
|||
.setPositiveButton(android.R.string.ok, (dialog, which) -> {
|
||||
// OK button pressed
|
||||
Toast.makeText(v.getContext(), "OK button clicked", Toast.LENGTH_SHORT).show();
|
||||
|
||||
//共有プリファレンスに保存
|
||||
SharedPreferences sharedPreferences=PreferenceManager.getDefaultSharedPreferences(this.applicationContext);
|
||||
sharedPreferences.edit().putString("bluetooth_device_id", deviceList.get(position)[1]).apply();
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical"
|
||||
android:background="@color/white"
|
||||
tools:context=".bluetooth_setupFragment">
|
||||
|
||||
|
||||
|
@ -13,8 +14,17 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="登録可能デバイス"
|
||||
android:text="デバイス"
|
||||
android:textSize="35dp"
|
||||
android:textColor="@color/black"
|
||||
android:layout_marginTop="20dp"
|
||||
/>
|
||||
<View
|
||||
android:id="@+id/divider1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="@color/black" />
|
||||
|
||||
<androidx.recyclerview.widget.RecyclerView
|
||||
android:id="@+id/recyclerView1"
|
||||
android:layout_width="match_parent"
|
||||
|
@ -24,13 +34,24 @@
|
|||
<TextView
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="登録済みデバイス"
|
||||
android:text="登録デバイス"
|
||||
android:textSize="35dp"
|
||||
android:textColor="@color/black"
|
||||
android:layout_marginTop="20dp"
|
||||
/>
|
||||
<View
|
||||
android:id="@+id/divider2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="1dp"
|
||||
android:background="@color/black"
|
||||
/>
|
||||
<TextView
|
||||
android:id="@+id/registered_device"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="50dp"/>
|
||||
android:layout_height="60dp"
|
||||
android:textSize="30sp"
|
||||
android:textColor="@color/black"
|
||||
/>
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
android:id="@+id/textView1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:textSize="30sp"/>
|
||||
android:textSize="30sp"
|
||||
android:textColor="@color/black"/>
|
||||
|
||||
</LinearLayout>
|
Loading…
Reference in New Issue
Block a user