Sparowane urządzenia są częścią Preferencji systemowych.
Możesz znaleźć plik z preferencjami bluetooth w /Library/Preferences
, jego nazwa to com.apple.Bluetooth.plist
.
Jednak nie można edytować plik bezpośrednio. Powinieneś użyć klasy SCPreferences
ze struktury .
Uwaga: interfejs API do uzyskiwania dostępu/modyfikowania preferencji systemowych jest dość niski.
EDYCJA: Poniższy kod działa, jeśli jest uruchomiony w trybie administratora. Nie jestem programistą systemu Mac OS, ale powinno być możliwe zainicjowanie go za pomocą AuthorizationRef
i uruchomienie go w trybie użytkownika (użytkownik potwierdzi dostęp do konfiguracji systemu).
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);
Czy chcesz usunąć to samo w aplikacji mac lub ios? –
@hussainShabbir Tagi powinny Ci to powiedzieć! – Sulthan