Форум для тех, кто программирует под Android
Anonymous
Android найти устройство BLE
Сообщение
Anonymous » 10 фев 2025, 12:55
Мне нужно реализовать Antivate Android, чтобы найти устройство BLE, доступное рядом с моим смартфоном. Итак, это мой код: < /p>
Код: Выделить всё
package it.smain;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.location.LocationManager;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import android.Manifest;
import it.eresult.silvermountain.databinding.ActivityFindDeviceBinding;
public class FindDeviceActivity extends AppCompatActivity {
private ActivityFindDeviceBinding binding;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivityFindDeviceBinding.inflate(getLayoutInflater());
View view = binding.getRoot();
setContentView(view);
}
public boolean hasBlePermissions() {
if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED ||
ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED) {
return false;
} else {
return true;
}
}
public void requestBlePermissions(final Activity activity, int requestCode) {
ActivityCompat.requestPermissions(activity,
new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION},
requestCode);
}
public boolean checkGrantResults(String[] permissions, int[] grantResults) {
int granted = 0;
if (grantResults.length > 0) {
for(int i = 0; i < permissions.length ; i++) {
String permission = permissions[i];
if (permission.equals(Manifest.permission.ACCESS_FINE_LOCATION) ||
permission.equals(Manifest.permission.ACCESS_COARSE_LOCATION)) {
if (grantResults[i] == PackageManager.PERMISSION_GRANTED) {
granted++;
}
}
}
} else { // if cancelled
return false;
}
return granted == 2;
}
public boolean areLocationServicesEnabled(Context context) {
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
try {
return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) ||
locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
}
< /code>
Это часть моего файла Android.manifest, чтобы разрешить Bluetooth разрешение: < /p>
Теперь, что я могу сделать, чтобы найти устройство BLE возле моего смартфона?
Подробнее здесь:
https://stackoverflow.com/questions/794 ... ble-device
1739181302
Anonymous
Мне нужно реализовать Antivate Android, чтобы найти устройство BLE, доступное рядом с моим смартфоном. Итак, это мой код: < /p> [code]package it.smain; import android.app.Activity; import android.content.Context; import android.content.pm.PackageManager; import android.location.LocationManager; import android.os.Bundle; import android.view.View; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat; import android.Manifest; import it.eresult.silvermountain.databinding.ActivityFindDeviceBinding; public class FindDeviceActivity extends AppCompatActivity { private ActivityFindDeviceBinding binding; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); binding = ActivityFindDeviceBinding.inflate(getLayoutInflater()); View view = binding.getRoot(); setContentView(view); } public boolean hasBlePermissions() { if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED || ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { return false; } else { return true; } } public void requestBlePermissions(final Activity activity, int requestCode) { ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, requestCode); } public boolean checkGrantResults(String[] permissions, int[] grantResults) { int granted = 0; if (grantResults.length > 0) { for(int i = 0; i < permissions.length ; i++) { String permission = permissions[i]; if (permission.equals(Manifest.permission.ACCESS_FINE_LOCATION) || permission.equals(Manifest.permission.ACCESS_COARSE_LOCATION)) { if (grantResults[i] == PackageManager.PERMISSION_GRANTED) { granted++; } } } } else { // if cancelled return false; } return granted == 2; } public boolean areLocationServicesEnabled(Context context) { LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); try { return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER) || locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER); } catch (Exception e) { e.printStackTrace(); return false; } } } < /code> Это часть моего файла Android.manifest, чтобы разрешить Bluetooth разрешение: < /p> [/code] Теперь, что я могу сделать, чтобы найти устройство BLE возле моего смартфона? Подробнее здесь: [url]https://stackoverflow.com/questions/79426677/android-find-ble-device[/url]