scanning WiFi/Bluetooth in android-23 requires location permission

This requires that admin#65 is fixed, otherwise every F-Droid update will
require Unknown Sources with Privileged Extension.

https://developer.android.com/about/versions/marshmallow/android-6.0-changes.html#behavior-hardware-id
https://stackoverflow.com/a/44200390

closes #656
This commit is contained in:
Hans-Christoph Steiner 2018-04-12 17:28:23 +02:00
parent 1d1f489d85
commit 90c3baf5af
3 changed files with 21 additions and 1 deletions

View File

@ -44,6 +44,8 @@
<uses-permission android:name="android.permission.NFC"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<application>
<activity

View File

@ -68,8 +68,16 @@ class NearbyViewBinder {
startButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String coarseLocation = Manifest.permission.ACCESS_COARSE_LOCATION;
if (Build.VERSION.SDK_INT >= 23
&& PackageManager.PERMISSION_GRANTED
!= ContextCompat.checkSelfPermission(activity, coarseLocation)) {
ActivityCompat.requestPermissions(activity, new String[]{coarseLocation},
MainActivity.REQUEST_LOCATION_PERMISSIONS);
} else {
activity.startActivity(new Intent(activity, SwapWorkflowActivity.class));
}
}
});
if (Build.VERSION.SDK_INT >= 21) {

View File

@ -30,6 +30,7 @@ import android.content.IntentFilter;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.content.LocalBroadcastManager;
import android.support.v7.app.AppCompatActivity;
@ -77,6 +78,7 @@ public class MainActivity extends AppCompatActivity implements BottomNavigationB
public static final String EXTRA_VIEW_UPDATES = "org.fdroid.fdroid.views.main.MainActivity.VIEW_UPDATES";
public static final String EXTRA_VIEW_SETTINGS = "org.fdroid.fdroid.views.main.MainActivity.VIEW_SETTINGS";
static final int REQUEST_LOCATION_PERMISSIONS = 0xEF0F;
static final int REQUEST_STORAGE_PERMISSIONS = 0xB004;
private static final String ADD_REPO_INTENT_HANDLED = "addRepoIntentHandled";
@ -208,6 +210,14 @@ public class MainActivity extends AppCompatActivity implements BottomNavigationB
checkForAddRepoIntent(intent);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { // NOCHECKSTYLE LineLength
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if (requestCode == REQUEST_LOCATION_PERMISSIONS) {
startActivity(new Intent(this, SwapWorkflowActivity.class));
}
}
@Override
public void onTabSelected(int position) {
pager.scrollToPosition(position);