Android ile PC'ye başarılı bir şekilde bağlanmak için Stollmann SDK kullanan bir Windows 7 uygulamasına sahibim. Bluetooth MAC adresi, karma ve rasgele dağıtıcının çift yönlü değişimi NFC ile bant üzerinden gerçekleştirilir:Bluetooth Güvenli Basit Eşleştirme (SSP) QR kodu Bant dışı (OOB) kanalı olarak kullanıyor
maalesef burada paylaşılamaz Windows uygulamasının kaynak kodu. Android tarafında hiçbir uygulamaya gerek duyulmuyor ve Güvenli Basit Eşleştirme, application/vnd.bluetooth.ep.oob
numaralı NDEF mesajı alındığında işletim sistemi tarafından (HandoverManager?) Gerçekleştiriliyor.
Ancak OOB bağ Android'de henüz uygulanmadı gibi görünüyor -
/**
* Read the local Out of Band Pairing Data
* <p>Requires {@link android.Manifest.permission#BLUETOOTH}
*
* @return Pair<byte[], byte[]> of Hash and Randomizer
*
* @hide
*/
public Pair<byte[], byte[]> readOutOfBandData() {
if (getState() != STATE_ON) return null;
//TODO(BT
/*
try {
byte[] hash;
byte[] randomizer;
byte[] ret = mService.readOutOfBandData();
if (ret == null || ret.length != 32) return null;
hash = Arrays.copyOfRange(ret, 0, 16);
randomizer = Arrays.copyOfRange(ret, 16, 32);
if (DBG) {
Log.d(TAG, "readOutOfBandData:" + Arrays.toString(hash) +
":" + Arrays.toString(randomizer));
}
return new Pair<byte[], byte[]>(hash, randomizer);
} catch (RemoteException e) {Log.e(TAG, "", e);}*/
return null;
}
/**
* Start the bonding (pairing) process with the remote device using the
* Out Of Band mechanism.
*
* <p>This is an asynchronous call, it will return immediately. Register
* for {@link #ACTION_BOND_STATE_CHANGED} intents to be notified when
* the bonding process completes, and its result.
*
* <p>Android system services will handle the necessary user interactions
* to confirm and complete the bonding process.
*
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
*
* @param hash - Simple Secure pairing hash
* @param randomizer - The random key obtained using OOB
* @return false on immediate error, true if bonding will begin
*
* @hide
*/
public boolean createBondOutOfBand(byte[] hash, byte[] randomizer) {
//TODO(BT)
/*
try {
return sService.createBondOutOfBand(this, hash, randomizer);
} catch (RemoteException e) {Log.e(TAG, "", e);}*/
return false;
}
/**
* Set the Out Of Band data for a remote device to be used later
* in the pairing mechanism. Users can obtain this data through other
* trusted channels
*
* <p>Requires {@link android.Manifest.permission#BLUETOOTH_ADMIN}.
*
* @param hash Simple Secure pairing hash
* @param randomizer The random key obtained using OOB
* @return false on error; true otherwise
*
* @hide
*/
public boolean setDeviceOutOfBandData(byte[] hash, byte[] randomizer) {
//TODO(BT)
/*
try {
return sService.setDeviceOutOfBandData(this, hash, randomizer);
} catch (RemoteException e) {Log.e(TAG, "", e);} */
return false;
}
Sorum:
OOB Blue yana diş eşleme Android NFC üzerinde iyi çalışır - QR kodu ile aynı şeyi yapmak için bir (hackish) yolu olduğunu düşünüyor musunuz?
Belki de (çılgın bir fikir) HandoverManager
nolu sahte NDEF mesajı ile besleniyor?
Mümkün mü, bilmiyorum, ama çılgın fikrini seviyorum. İşte şu anda test etmek için zamanım olmadığı karanlıkta bir atış, ama NFC tetiklendiğinde bir Yayın gönderir mi? https://play.google.com/store/apps/details?id=lt.andro.broadcastlogger&hl=tr –
Hello @Alexandee Farbar. Sorunuza cevap verdin mi? – ymerdrengene