森川敬一 CTO ブログ

unimediaでCTOやってます森川敬一です。エンジニアブログ。IoT、ウエアブルとか書いていきます。

iBeacon Stick-N-FindをiPhoneアプリで動かしてみる その2

動いたので中身を見てみます。

BeaconTableViewController.mのこちらでiBeacon一覧を作成してます。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    BeaconTableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier: @"BEACONCELL" forIndexPath:indexPath];
    
    LeSnfDevice *device = [[self getBeaconArray]objectAtIndexedSubscript:indexPath.row];
    
    cell.nameLbl.text = device.name == nil ? [NSString stringWithFormat:@"Beacon %d", indexPath.row] : device.name;
    cell.rssiLbl.text = [NSString stringWithFormat:@"%d", device.rssi];
    
    return cell;
}

||<<


で実際のconnect,disconnectの部分は、ViewController.m
>|swift|
- (IBAction)connectOrDisconnect:(id)sender {
    switch (theDevice.state) {
        case LE_DEVICE_STATE_CONNECTED:
        case LE_DEVICE_STATE_CONNECTING:
            [theDevice disconnect];
            [cntBtn setTitle:@"Connect" forState:UIControlStateNormal];
            break;
            
        case LE_DEVICE_STATE_DISCONNECTED:
            [theDevice connect];
            [cntBtn setTitle:@"Disconnect" forState:UIControlStateNormal];
            break;
            
        default:
         //LE_DEVICE_STATE_UPDATING_FIRMWARE so just let it be
        break;
    }

||<<

音を鳴らす部分もこれだけです。
SDKがあると簡単ですね。

>|swift|
- (IBAction)pageBeacon:(id)sender {
    [theDevice enableAlertSound:YES light:YES]; //if connect page ... else nothing will happen
}

||<<

ただbluetoothのペアリングをする必要があるんだけど、これってマストなのかな?