質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

1回答

3193閲覧

beaconの情報を取得出来ない

退会済みユーザー

退会済みユーザー

総合スコア0

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2017/11/19 13:25

編集2017/11/21 13:55

Beaconの情報をandroidで受信しようとしています。
その前段階として、log文で情報が出力されているか確認しているところです。
エラーはおきていないのですが、情報を出力するログが出ず困っています。
詳しい方がいらっしゃいましたらお願いします。

java

1package com.example.beacontest12; 2import android.os.Bundle; 3import android.os.RemoteException; 4import android.support.v7.app.AppCompatActivity; 5import android.util.Log; 6import android.widget.TextView; 7 8import org.altbeacon.beacon.Beacon; 9import org.altbeacon.beacon.BeaconConsumer; 10import org.altbeacon.beacon.BeaconManager; 11import org.altbeacon.beacon.BeaconParser; 12import org.altbeacon.beacon.Identifier; 13import org.altbeacon.beacon.MonitorNotifier; 14import org.altbeacon.beacon.RangeNotifier; 15import org.altbeacon.beacon.Region; 16 17import java.util.Collection; 18 19public class MainActivity extends AppCompatActivity implements BeaconConsumer { 20 21 22 23 24 //perser設定 25 public static final String IBEACON_FORMAT = "m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24"; 26 27 public static final String UUID = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"; 28 29 30 31 public BeaconManager beaconManager; 32 33 34 35 //インスタンス化 36 @Override 37 protected void onCreate(Bundle savedInstanceState) { 38 super.onCreate(savedInstanceState); 39 setContentView(R.layout.activity_main); 40 41 42 BeaconManager mBeaconManager = BeaconManager.getInstanceForApplication(this); 43 44 // staticメソッドで取得 45 beaconManager = BeaconManager.getInstanceForApplication(this); 46 // BeaconParseを設定 47 beaconManager.getBeaconParsers().add(new BeaconParser().setBeaconLayout(IBEACON_FORMAT)); 48 49 50 51 52 } 53 54 55 @Override 56 protected void onResume() { 57 super.onResume(); 58 // サービスの開始 59 beaconManager.bind(this); 60 } 61 62 63 64 @Override 65 public void onBeaconServiceConnect() { 66 //受信するbeaconのuuid,major,minor設定 67 //Identifier uuid = Identifier.parse(UUID); 68 Identifier uuid = Identifier.parse("00000000-5896-1001-B000-001C4DE59704"); 69 Identifier major = Identifier.parse("1"); 70 Identifier minor = Identifier.parse("1"); 71 Region mRegion = new Region("ibeacon", uuid, major, minor); 72 73 74 75 beaconManager.addMonitorNotifier(new MonitorNotifier() { 76 77 @Override 78 public void didEnterRegion(Region region) { 79 Log.d("log", "didEnterRegion1"); 80 try { 81 beaconManager.startRangingBeaconsInRegion(region); 82 } catch (RemoteException e) { 83 e.printStackTrace(); 84 } 85 // 領域侵入 86 } 87 88 89 @Override 90 public void didExitRegion(Region region) { 91 Log.d("log", "didEnterRegion2"); 92 93 // 領域退出 94 } 95 96 @Override 97 public void didDetermineStateForRegion(int i, Region region) { 98 Log.d("log", "didEnterRegion3"); 99 100 //レンジング開始 101 //BeaconManager.startRangingBeaconsInRegion(Region);だとエラー 102 103 try { 104 beaconManager.startRangingBeaconsInRegion(region); 105 } catch (RemoteException e) { 106 e.printStackTrace(); 107 } 108 Log.d("log", "didEnterRegion4"); 109 beaconManager.addRangeNotifier(new RangeNotifier() { 110 111 @Override 112 public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) { 113 Log.d("log", "didEnterRegion5"); 114 for (Beacon beacon : beacons) { 115             Log.d("log", "didEnterRegion5-2"); 116 // ログの出力 117 Log.d("log", "UUID:" + beacon.getId1() + ", major:" + beacon.getId2() + ", minor:" ); 118 119 //@Override 120 //public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) { 121 122 // 検出したビーコンの情報 123 } 124 Log.d("log", "didEnterRegion6"); 125 } 126 127 128 129 }); 130 Log.d("log", "didEnterRegion7"); 131 132 } 133 134 }); 135 136 Log.d("log", "didEnterRegion8"); 137 try { 138 // ビーコン情報の監視を開始 139 beaconManager.startMonitoringBeaconsInRegion(new Region("unique-id-001", null, null, null)); 140 } catch (RemoteException e) { 141 e.printStackTrace(); 142 } 143 Log.d("log", "didEnterRegion9"); 144 beaconManager.addRangeNotifier(new RangeNotifier() { 145 146 @Override 147 public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) { 148 Log.d("log", "didEnterRegion10"); 149 for (Beacon beacon : beacons) { 150 Log.d("log", "didEnterRegion11"); 151 // ログの出力 152 153 Log.d("log", "UUID:" + beacon.getId1() + ", major:" + beacon.getId2() + ", minor:" + beacon.getId3()); 154 } 155 156 Log.d("log", "didEnterRegion12"); 157 //@Override 158 //public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) { 159 160 // 検出したビーコンの情報 161 162 163 } 164 165 166 167 }); 168 Log.d("log", "didEnterRegion13"); 169 } 170}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

各メソッドの先頭でログ出力を行い、自分の想定している順序でメソッドが呼ばれているかを確認してください。
また、パーミッションの設定は行なっていますか?

投稿2017/11/20 17:24

yona

総合スコア18155

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/11/21 14:03

回答ありがとうございます。 >各メソッドの先頭でログ出力を行い、自分の想定している順序でメソッドが呼ばれているかを確認してください。 細かくログ文を追加してみました。 以下ログ文 11-21 22:35:24.090 2927-2927/com.example.beacontest12 D/log: didEnterRegion8 11-21 22:35:24.102 2927-2927/com.example.beacontest12 D/log: didEnterRegion3 11-21 22:35:24.102 2927-2927/com.example.beacontest12 D/log: didEnterRegion4 11-21 22:35:24.102 2927-2927/com.example.beacontest12 D/log: didEnterRegion7 11-21 22:35:24.103 2927-2927/com.example.beacontest12 D/log: didEnterRegion9 11-21 22:35:24.103 2927-2927/com.example.beacontest12 D/log: didEnterRegion13 11-21 22:35:25.151 2927-2950/com.example.beacontest12 D/log: didEnterRegion5 11-21 22:35:25.151 2927-2950/com.example.beacontest12 D/log: didEnterRegion6 11-21 22:35:25.151 2927-2950/com.example.beacontest12 D/log: didEnterRegion10 11-21 22:35:25.151 2927-2950/com.example.beacontest12 D/log: didEnterRegion12 11-21 22:35:26.272 2927-2951/com.example.beacontest12 D/log: didEnterRegion5 11-21 22:35:26.272 2927-2951/com.example.beacontest12 D/log: didEnterRegion6 11-21 22:35:26.273 2927-2951/com.example.beacontest12 D/log: didEnterRegion10 11-21 22:35:26.273 2927-2951/com.example.beacontest12 D/log: didEnterRegion12 このあとはdidenterRegion5,6,10,12が繰り返し出力されています。 ログを見る限りでは拡張for文内に入っていないため、ログが出力されていないようです。 自分ではなぜ拡張for文内に入って行かないのか分かりません。 厚かましく恐縮ですが、何かわかることがあれば追記をお願いします。 >パーミッションの設定は行なっていますか? 以下の行をmanifestファイルに書き込んであります。 <uses-permission android:name="android.permission.BLUETOOTH"/> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> <!--対応していない機種にインストールされないようにuser-futureを設定する--> <uses-feature android:name="android.hardware.bluetooth_le" android:required="true"/> <!--Android 6.0でBLEを使うのに位置情報のパーミッションが必要--> <uses-permission-sdk-23 android:name="android.permission.ACCESS_COARSE_LOCATION"/>
yona

2017/11/21 14:28

didEnterRegionのregionの内容を調べてください。 また、ログ出力し、他の人に見せるのであれば、メッセージは適当なものにしましょう。 番号では管理してわかるのはあなただけです、他の人がログメッセージの意味を理解する時間を最小にする努力をしてください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問