0

アプリがバックグラウンドにあるときに、cB-OLP425 ble デバイスに接続しようとしています。私はウェブ上でできることはすべてやりました。connect blue の cb.demo.c では、IAR embeddedWorkbench を使って、このようにアドバタイジング間隔を 20ms に設定しています。

void gapSetAlwaysAdvertising(void)
{
uint8 advertising_enable = TRUE;
uint16 desired_min_advertising_interval = 20; **//I'M ASSUMING THIS IS 20ms changed it from 1600**
int16 desired_max_advertising_interval = 2500;

uint8 advertData[] = 0x02,  //length of first data structure (2 bytes excluding length byte)
**//I'm thinking I need to change this to 0x05 which is 30 sec. am I correct**

GAP_ADTYPE_FLAGS,  //AD Type = Flags
GAP_ADTYPE_FLAGS_GENERAL | GAP_ADTYPE_FLAGS_BREDR_NOT_SUPPORTED
};

ローカル名の名前を変更し、その名前への接続のみを許可することにより、特定の1つのモジュールのみに接続するようにしました。

バックグラウンドでこれがオフになっている可能性があるという点で、これは問題である可能性があることをどこかで読みましたか?

モジュールを見つけるためにこのコードを使用します

- (id)init
{
    if ((self = [super init]))
    {
        self.characteristicsCBUUID = [NSMutableDictionary new];
        self.myPeripherals = [NSMutableArray new];

        manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
    }

    return self;
}


- (void)startScan
{
    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:FALSE], CBCentralManagerScanOptionAllowDuplicatesKey, nil];

    [manager scanForPeripheralsWithServices:self.myPeripherals options:options];



}

- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
    NSLog(@"Did discover peripheral. peripheral: %@ rssi: %@, UUID: %@ advertisementData: %@ ", peripheral, RSSI, peripheral.UUID, advertisementData);
    NSDictionary *dataDict = [NSDictionary dictionaryWithObject:@"Specialname" forKey:@"kCBAdvDataLocalName" ];

    if(![self.myPeripherals containsObject:peripheral])
        [self.myPeripherals addObject:peripheral];
   if ([advertisementData isEqualToDictionary:dataDict]) {



    [manager retrievePeripherals:[NSArray arrayWithObject:(id) peripheral.UUID]];

        }
}

バックグラウンド モードで機能するアプリの Plist に正しい情報を追加しました。ただし、アプリがスリープ状態にならないようにするために追加された場合、Appleはこれを承認しないと聞いたので、オーディオではありません。

誰か提案がありますか、何かを変更/追加する必要がある場所を確認してください。私は欲求不満になり始めています。

助けてくれてありがとう

4

1 に答える 1