I dispositivi associati sono una parte delle Preferenze di Sistema.
È possibile trovare il file con le preferenze Bluetooth in /Library/Preferences
, il suo nome è com.apple.Bluetooth.plist
.
![com.apple.Bluetooth.plist](https://i.stack.imgur.com/QusIs.png)
Tuttavia, non è possibile modificare direttamente il file. È necessario utilizzare la classe SCPreferences
dal framework System Configuration
.
Nota l'API di accesso/modifica preferenze di sistema è piuttosto basso livello.
EDIT: Il seguente codice funziona se eseguito in modalità superutente. Non sono uno sviluppatore Mac OS, ma dovrebbe essere possibile inizializzarlo con un AuthorizationRef
ed eseguirlo con la modalità utente (l'utente confermerà l'accesso alla configurazione del sistema).
SCPreferencesRef prefs = SCPreferencesCreate(kCFAllocatorDefault,
CFSTR("Test"),
CFSTR("/Library/Preferences/com.apple.Bluetooth.plist"));
const CFStringRef PAIRED_DEVICES_KEY = CFSTR("PairedDevices");
NSArray *pairedDevices = (__bridge NSArray *) SCPreferencesGetValue(prefs, PAIRED_DEVICES_KEY);
NSLog(@"Paired devices: %@", pairedDevices);
NSString *deviceToRemove = @"e4-32-cb-da-ca-2f";
NSMutableArray *newPairedDevices = [pairedDevices mutableCopy];
[newPairedDevices removeObject:deviceToRemove];
Boolean valueSet = SCPreferencesSetValue(prefs, PAIRED_DEVICES_KEY, (__bridge CFPropertyListRef) [NSArray arrayWithArray:newPairedDevices]);
NSLog(@"Value set: %@", (valueSet) ? @"YES" : @"NO");
if (!valueSet) {
NSLog(@"Error: %@", SCCopyLastError());
}
Boolean saved = SCPreferencesCommitChanges(prefs);
if (!saved) {
NSLog(@"Error: %@", SCCopyLastError());
}
NSLog(@"Saved: %@", (saved) ? @"YES" : @"NO");
CFRelease(prefs);
vuoi rimuovere lo stesso in Mac o iOS ?? –
@hussainShabbir I tag dovrebbero dirti questo! – Sulthan