更新时间:2024-03-04 08:35:05
本文介绍扫地机 SDK P2P 相关操作的示例代码。
示例代码
#import "ThingSmartSweeperBestPractices.h"
#import <ThingSmartSweeperKit/ThingSmartSweeperKit.h>
@interface ThingSmartSweeperP2PBestPractices()
@property (nonatomic,strong) ThingSmartSweeperDevice *p2pDevice;
@property (nonatomic, copy) NSString *devId;
@property (nonatomic,assign) NSInteger downloadType;
@end
@implementation ThingSmartSweeperP2PBestPractices
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
#pragma mark - P2P 数据通道
- (void)initP2PSDK:(NSString*)devId {
[self initConfig];
self.devId = devId;
self.p2pDevice = [ThingSmartSweeperDevice deviceWithDeviceId:devId];
}
- (void)connectDeviceByP2P{
if (![self.p2pDevice P2PActiveCheck]){
weakify(self)
[self.p2pDevice connectDeviceByP2P:^{
NSLog(@"P2P 连接成功");
strongif(self)
[self startObserverSweeperDataByP2P:self.devId downloadType:self.downloadType];
} failure:^(NSError * _Nullable error) {
NSLog(@"P2P 连接失败:%@",error);
}];
}
}
- (void)startObserverSweeperDataByP2P:(NSString*)devId downloadType:(NSInteger)downloadType{
self.downloadType = downloadType;
weakify(self);
[self.p2pDevice startObserverSweeperDataByP2P:downloadType receiveP2PData:^(NSDictionary * _Nonnull data) {
if (data) {
NSLog(@"onMapDataReceiveByP2P is %@",data);
}
} failure:^(NSError * _Nullable error) {
NSLog(@"onP2PError is %@",error);
}];
}
- (void)stopObserverSweeperDataByP2P{
[self.p2pDevice stopObserverSweeperDataByP2P:^{
NSLog(@"关闭数据下载成功");
} failure:^(NSError * _Nullable error) {
NSLog(@"关闭数据下载失败:%@",error);
}];
}
- (void)deInitP2PSDK:(NSString*)devId {
[self.p2pDevice onDestroyP2P];
}
#pragma mark - private
-(void)initConfig {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(p2p_cancelDownload) name:UIApplicationDidEnterBackgroundNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(p2p_startDownload) name:UIApplicationWillEnterForegroundNotification object:nil];
weakify(self)
NetworkStatusChanged(self, ^(NetworkStatus status) {
strongif(self)
if (status == NetworkStatusUnknown || status == NetworkStatusUnreachable) {
[self p2p_cancelDownload];
} else {
[self p2p_startDownload];
}
});
}
-(void)p2p_cancelDownload {
// 断开 P2P 通道
[self.p2pDevice onDestroyP2P];
}
-(void)p2p_startDownload {
[self connectDeviceByP2P];
}
@end
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈