Bluno Basic Demo pour Android 10+

Les fabricants du Bluno n’ont pas mit à jour leurs samples depuis 5 ans, les versions d’Android ont évolués et leur projet Github ne compile plus correctement. On va voir ensemble comment faire fonctionner le Bluno et Bluno Beetle avec quelques nouvelles lignes.

Comment faire marcher le Bluno pour Android 10 et plus ?

Les versions d’Android 10 et plus nécessitent de nouvelles modifications concernant les permissions, on démarre ça dans le MainActivity du projet et on y ajoute les nouvelles variables et fonctions :

mainactivity : L93 – 114

static boolean locationGranted = false;
static final int ACCESS_LOCATION = 1;
 
static boolean locationPermission(Context context){
  if(ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED || ActivityCompat.checkSelfPermission(context, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED){
    ActivityCompat.requestPermissions((Activity) context, new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION}, ACCESS_LOCATION);
    return false;
  }else{
    return true;
  }
}

@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  switch (requestCode) {
    case ACCESS_LOCATION:
      locationGranted = grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED;
      break;
  }
}

De la ligne 30 à 32 du MainActivity on ajoute une condition au onCreate qui vérifie si la permission a bien été accordée :

if(locationPermission(this)) {
locationGranted = true;
}

Et on termine par ajouter ces permissions dans le AndroidManifest.xml L14-15 :

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>

Bluno Sample code source