I suspect you are having trouble scanning for BLE devices on the Raspberry Pi 3 using Nearby. It may be an issue with Android's driver interface to the onboard Bluetooth LE chip.
Nearby is a hard API to troubleshoot as it is high level and opaque. I would try using low level scanning APIs to see if you can get better error messaging. You could try running my super simple BLE packet counter app. It does a scan like this and simply logs a count of results:
private BluetoothAdapter mBluetoothAdapter;
private boolean mScanning;
private Handler mHandler;
private long mAdvertisementCount = 0;
private BluetoothAdapter.LeScanCallback mLeScanCallback =
new BluetoothAdapter.LeScanCallback() {
@Override
public void onLeScan(final BluetoothDevice device, int rssi,
byte[] scanRecord) {
mAdvertisementCount++;
Log.d(TAG, ""+mAdvertisementCount);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final BluetoothManager bluetoothManager =
(BluetoothManager) getSystemService(this.BLUETOOTH_SERVICE);
mBluetoothAdapter = bluetoothManager.getAdapter();
}
@Override
protected void onResume() {
super.onResume();
mBluetoothAdapter.startLeScan(mLeScanCallback);
}
protected void onPause() {
super.onPause();
mBluetoothAdapter.stopLeScan(mLeScanCallback);
}
If you run this code you can see if you get any low-level errors in the logs, and if the counter increases in the presence of a beacon.