Merge pull request #21 from child-guardian/kyou/Bluetooth
Bluetoothの接続状態を返却する機能を追加
This commit is contained in:
commit
944f08f988
|
@ -6,7 +6,7 @@
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
<option name="testRunner" value="GRADLE" />
|
<option name="testRunner" value="GRADLE" />
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
<option name="gradleJvm" value="Embedded JDK" />
|
<option name="gradleJvm" value="jbr-17" />
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
<set>
|
<set>
|
||||||
<option value="$PROJECT_DIR$" />
|
<option value="$PROJECT_DIR$" />
|
||||||
|
|
|
@ -18,6 +18,7 @@ import android.net.Uri;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Vibrator;
|
import android.os.Vibrator;
|
||||||
|
import android.preference.PreferenceFragment;
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
@ -46,6 +47,7 @@ public class MainActivity extends AppCompatActivity {
|
||||||
BluetoothManager bluetoothManager;
|
BluetoothManager bluetoothManager;
|
||||||
BluetoothAdapter bluetoothAdapter;
|
BluetoothAdapter bluetoothAdapter;
|
||||||
|
|
||||||
|
|
||||||
DocumentReference mDocRef;
|
DocumentReference mDocRef;
|
||||||
|
|
||||||
private HomeFragment homeFragment;
|
private HomeFragment homeFragment;
|
||||||
|
@ -81,6 +83,11 @@ public class MainActivity extends AppCompatActivity {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
setContentView(R.layout.activity_main);
|
setContentView(R.layout.activity_main);
|
||||||
|
|
||||||
|
//Bluetooth接続判定用
|
||||||
|
SharedPreferences pref=PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
|
SharedPreferences.Editor e=pref.edit();
|
||||||
|
e.putBoolean("connection_status",false);
|
||||||
|
|
||||||
db = FirebaseFirestore.getInstance();//Firebaseとの紐づけ
|
db = FirebaseFirestore.getInstance();//Firebaseとの紐づけ
|
||||||
|
|
||||||
BottomNavigationView bottomNavigationView = findViewById(R.id.nav_view);
|
BottomNavigationView bottomNavigationView = findViewById(R.id.nav_view);
|
||||||
|
@ -187,12 +194,19 @@ public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
|
|
||||||
//Bluetoothの検知機能
|
//Bluetoothの検知機能
|
||||||
|
|
||||||
private final BroadcastReceiver receiver = new BroadcastReceiver() {
|
private final BroadcastReceiver receiver = new BroadcastReceiver() {
|
||||||
|
|
||||||
|
|
||||||
|
//PreferenceManager.getDefaultSharedPreferences("myPreferences",Context.MODE_PRIVATE);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
SharedPreferences pref= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
|
||||||
|
SharedPreferences.Editor e=pref.edit();
|
||||||
String action = intent.getAction(); // may need to chain this to a recognizing function
|
String action = intent.getAction(); // may need to chain this to a recognizing function
|
||||||
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
|
BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
|
||||||
|
|
||||||
// HomeFragment homeFragment=new HomeFragment();
|
// HomeFragment homeFragment=new HomeFragment();
|
||||||
|
|
||||||
if (ActivityCompat.checkSelfPermission(context, android.Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
|
if (ActivityCompat.checkSelfPermission(context, android.Manifest.permission.BLUETOOTH_CONNECT) != PackageManager.PERMISSION_GRANTED) {
|
||||||
|
@ -211,12 +225,19 @@ public class MainActivity extends AppCompatActivity {
|
||||||
|
|
||||||
if (deviceHardwareAddress.equals(registeredId)) {
|
if (deviceHardwareAddress.equals(registeredId)) {
|
||||||
Log.d("BT_Judge", "登録済み");
|
Log.d("BT_Judge", "登録済み");
|
||||||
} else Log.d("BT_Judge", "未登録");
|
e.putBoolean("connection_status",true);
|
||||||
|
|
||||||
|
} else{
|
||||||
|
Log.d("BT_Judge", "未登録");
|
||||||
|
e.putBoolean("connection_status",false);
|
||||||
|
}
|
||||||
|
e.apply();
|
||||||
|
|
||||||
} else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) {
|
} else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) {
|
||||||
//Do something if disconnected
|
//Do something if disconnected
|
||||||
Log.d("BT", "Device disconnected");
|
Log.d("BT", "Device disconnected");
|
||||||
|
e.putBoolean("connection_status",false);
|
||||||
|
e.apply();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -64,6 +64,8 @@ public class TestService extends Service {
|
||||||
mDocRef = FirebaseFirestore.getInstance().document("status/" + IdPref);//現在の位置を取得
|
mDocRef = FirebaseFirestore.getInstance().document("status/" + IdPref);//現在の位置を取得
|
||||||
initNotification(mDocRef);//現在の位置を引数に initNotification()を処理
|
initNotification(mDocRef);//現在の位置を引数に initNotification()を処理
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Bluetooth_status();
|
||||||
return flags;
|
return flags;
|
||||||
|
|
||||||
|
|
||||||
|
@ -272,6 +274,78 @@ public class TestService extends Service {
|
||||||
handler.removeCallbacks(periodicTask);
|
handler.removeCallbacks(periodicTask);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void Bluetooth_status() {
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private final BroadcastReceiver receiver = new BroadcastReceiver() {
|
||||||
|
|
||||||
|
|
||||||
|
//PreferenceManager.getDefaultSharedPreferences("myPreferences",Context.MODE_PRIVATE);
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onReceive(Context context, Intent intent) {
|
||||||
|
SharedPreferences pref= PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
|
||||||
|
SharedPreferences.Editor e=pref.edit();
|
||||||
|
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 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", "登録済み");
|
||||||
|
e.putBoolean("connection_status",true);
|
||||||
|
|
||||||
|
} else{
|
||||||
|
Log.d("BT_Judge", "未登録");
|
||||||
|
e.putBoolean("connection_status",false);
|
||||||
|
}
|
||||||
|
e.apply();
|
||||||
|
|
||||||
|
} else if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) {
|
||||||
|
//Do something if disconnected
|
||||||
|
Log.d("BT", "Device disconnected");
|
||||||
|
e.putBoolean("connection_status",false);
|
||||||
|
e.apply();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// public void bluetoothTest() {
|
||||||
|
// SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
|
// Boolean b = pref.getBoolean("connection_status", false);
|
||||||
|
// Log.d("bluetooth", b.toString());
|
||||||
|
// }
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public IBinder onBind(Intent intent) {
|
public IBinder onBind(Intent intent) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user