質問編集履歴

3

ソースコードを削除しました

2017/07/20 13:34

投稿

ken-s
ken-s

スコア7

test CHANGED
File without changes
test CHANGED
@@ -1,135 +1 @@
1
- iBeaconを使って端末同士の領域観測をしています。領域観測をする受信側の端末はバックグラウンドでも正常に動作していますが、発信側の端末がバックグラウンドになると、受信側の端末で受け取った距離の値は「-1」になってしまいます。バックグラウンドでも正常に処理を続けさせる方法を調べていますが、BackgroundTaskしか見つからず、試してもうまくいきませんでした。正常にバックグラウンドで発信させられる方法をご存知の方、どうか教えてください。お願いします。
2
-
3
-
4
-
5
- ###iBeaconの発信側ソースコード
6
-
7
- ```
8
-
9
-
10
-
11
- import UIKit
12
-
13
- import CoreLocation
14
-
15
- import CoreBluetooth
16
-
17
-
18
-
19
- class ViewController: UIViewController, CBPeripheralManagerDelegate {
20
-
21
-
22
-
23
- var myPheripheralManager:CBPeripheralManager!
24
-
25
-
26
-
27
- override func viewDidLoad() {
28
-
29
- super.viewDidLoad()
30
-
31
-
32
-
33
- myPheripheralManager = CBPeripheralManager(delegate: self, queue: nil)
34
-
35
-
36
-
37
-
38
-
39
- }
40
-
41
-
42
-
43
- func peripheralManagerDidUpdateState(_ peripheral: CBPeripheralManager) {
44
-
45
-
46
-
47
- switch peripheral.state {
48
-
49
- case .unknown:
50
-
51
- print("Unknown")
52
-
53
- case .resetting:
54
-
55
- print("Resetting")
56
-
57
- case .unsupported:
58
-
59
- print("Unsupported")
60
-
61
- case .unauthorized:
62
-
63
- print("Unauthorized")
64
-
65
- case .poweredOff:
66
-
67
- print("PoweredOff")
68
-
69
-
70
-
71
- // BluetoothがONになった時
72
-
73
- case .poweredOn:
74
-
75
- print("PoweredOn")
76
-
77
-
78
-
79
- // iBeaconのUUID
80
-
81
- let myProximityUUID = NSUUID(uuidString: "ターミナルで生成したUUID")
82
-
83
-
84
-
85
- // iBeaconのIdentifier
86
-
87
- let myIdentifier = "sample-beacon"
88
-
89
-
90
-
91
- // Major.
92
-
93
- let myMajor : CLBeaconMajorValue = 1
94
-
95
-
96
-
97
- // Minor.
98
-
99
- let myMinor : CLBeaconMinorValue = 1
100
-
101
-
102
-
103
- // BeaconRegionを定義.
104
-
105
- let myBeaconRegion = CLBeaconRegion(proximityUUID: myProximityUUID! as UUID, major: myMajor, minor: myMinor, identifier: myIdentifier)
106
-
107
-
108
-
109
- // Advertisingのフォーマットを作成.
110
-
111
- let myBeaconPeripheralData = NSDictionary(dictionary: myBeaconRegion.peripheralData(withMeasuredPower: nil))
112
-
113
-
114
-
115
- // Advertisingを発信.
116
-
117
- /****************** バックグラウンドだとうまく発信できない?せいか「-1」しかこない *********************/
118
-
119
- myPheripheralManager.startAdvertising(myBeaconPeripheralData as? [String : Any])
120
-
121
-
122
-
123
- }
124
-
125
-
126
-
127
- }
128
-
129
-
130
-
131
- }
132
-
133
-
134
-
135
- ```
1
+ iBeaconを使って端末同士の領域観測をしています。発信側の端末がバックグラウンドになると、受信側の端末で受け取った距離の値は「-1」になってしまいます。バックグラウンドでも正常に処理を続けさせる方法を調べていますが、BackgroundTaskしか見つからず、試してもうまくいきませんでした。正常にバックグラウンドで発信させられる方法をご存知の方、どうか教えてください。お願いします。

2

プログラムのコメントを修正しました。

2017/07/20 13:34

投稿

ken-s
ken-s

スコア7

test CHANGED
File without changes
test CHANGED
@@ -114,6 +114,8 @@
114
114
 
115
115
  // Advertisingを発信.
116
116
 
117
+ /****************** バックグラウンドだとうまく発信できない?せいか「-1」しかこない *********************/
118
+
117
119
  myPheripheralManager.startAdvertising(myBeaconPeripheralData as? [String : Any])
118
120
 
119
121
 

1

説明について編集しました。

2017/06/29 12:08

投稿

ken-s
ken-s

スコア7

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,4 @@
1
- iBeaconを使って端末同士の領域観測をしています。領域観測をする受信側の端末はバックグラウンドでも正常に動作していますが、発信側の端末バックグラウンドになると距離の値は「-1」になってしまいます。バックグラウンドでも正常に処理を続けさせる方法を調べていますが、BackgroundTaskしか見つからず、試してもうまくいきませんでした。正常にバックグラウンドで発信させられる方法をご存知の方、どうか教えてください。お願いします。
1
+ iBeaconを使って端末同士の領域観測をしています。領域観測をする受信側の端末はバックグラウンドでも正常に動作していますが、発信側の端末バックグラウンドになると、受信側の端末で受け取った距離の値は「-1」になってしまいます。バックグラウンドでも正常に処理を続けさせる方法を調べていますが、BackgroundTaskしか見つからず、試してもうまくいきませんでした。正常にバックグラウンドで発信させられる方法をご存知の方、どうか教えてください。お願いします。
2
2
 
3
3
 
4
4