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

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

ただいまの
回答率

91.02%

  • Android Studio

    3168questions

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

androidでbeacon情報を取得する

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 222
退会済みユーザー

退会済みユーザー

前提・実現したいこと

プログラミング初心者で、初めてアンドロイドアプリを作ります。
AndroidスマートフォンでBeaconの情報を取得するためのAndroidアプリを作ろうとしています。
ネット上で調べてみましたところ、基にできそうなページがありましてそのまま書いてみました。
そうしたら、プログラムを書きうつしたところでエラーが発生し、解決方法が分からないため投稿させて頂きました。
よろしくお願い致します。

発生している問題・エラーメッセージ

現時点で起こっている問題は2つあります。

1つ目
cannot resolve symbol"(プログラムに書いた単語)"と表示される。
実行時に「シンボルを見つけられません」と表示される。
下記ソースコードではエラー箇所に「エラー"cannot resolve symbol"(プログラムに書いた単語)"」で記入しておきます。

2つ目
実行時に「クラスMyActivityはパブリックであり、ファイルMyActivity.javaで宣言する必要があります」と表示される。

該当のソースコード

javaAndroid Studio使用)


package beacon.android.classmethod.jp.altbeaconlibrarysample;//上記2つ目の問題が発生

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.os.RemoteException;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;

import com.example.beacontest.R;

import org.altbeacon.beacon.BeaconConsumer;
import org.altbeacon.beacon.BeaconManager;
import org.altbeacon.beacon.BeaconParser;
import org.altbeacon.beacon.MonitorNotifier;
import org.altbeacon.beacon.Region;

public class MyActivity extends Activity implements BeaconConsumer {

private BeaconManager beaconManager;

// iBeaconのデータを認識するためのParserフォーマット
public static final String IBEACON_FORMAT = "m:2-3=0215,i:4-19,i:20-21,i:22-23,p:24-24";

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);   //エラー"cannot resolve symbol"activity_my"
if (savedInstanceState == null) {
getFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())   //エラー"cannot resolve symbol"container"
.commit();
}

// staticメソッドで取得
beaconManager = BeaconManager.getInstanceForApplication(this);

// BeaconParseを設定
beaconManager.getBeaconParsers()
.add(new BeaconParser().setBeaconLayout(IBEACON_FORMAT));
}

@Override
protected void onPause() {
super.onPause();
beaconManager.unbind(this);
}

@Override
protected void onResume() {
super.onResume();
beaconManager.bind(this);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my, menu);    //エラー"cannot resolve symbol"menu"、最初に書いてある部分
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {      //エラー"cannot resolve symbol"action_settings"
return true;
}
return super.onOptionsItemSelected(item);
}
*/
@Override
public void onBeaconServiceConnect() {
beaconManager.setMonitorNotifier(new MonitorNotifier() {
@Override
public void didEnterRegion(Region region) {
// 領域への入場を検知
Log.d("Beacon", "ENTER Region.");
}

@Override
public void didExitRegion(Region region) {
// 領域からの退場を検知
Log.d("Beacon", "EXIT Region. ");
}

@Override
public void didDetermineStateForRegion(int i, Region region) {
// 領域への入退場のステータス変化を検知
Log.d("MyActivity", "DetermineState: " + i);
}
});

try {
// ビーコン情報の監視を開始
beaconManager.startMonitoringBeaconsInRegion(new Region("unique-id-001", null, null, null));
} catch (RemoteException e) {
e.printStackTrace();
}
}

/**

  • A placeholder fragment containing a simple view.
    */
    public static class PlaceholderFragment extends Fragment {

public PlaceholderFragment() {
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_my, container, false);   //エラー"cannot resolve symbol"fragment_my"
return rootView;
}
}
}

試したこと

エラー部分にカーソルを当てると赤色の豆電球マークが出てきたので、そこから「create field '記述名'」をクリックしたりしてみました。
エラーは消えましたが、実行すると実行と同時にアプリが終了してしまいました。

補足情報(言語/FW/ツール等のバージョンなど)

`・参考にしたサイト
https://dev.classmethod.jp/smartphone/android-beacon-library-introduction-1/
https://dev.classmethod.jp/smartphone/android-beacon-library-introduction-2/
https://dev.classmethod.jp/smartphone/android-beacon-library-introduction-3/
・ソース元
https://github.com/komuro-hiraku/BlogSampleAndroidBeaconLibrary/blob/beacon_003/app/src/main/java/beacon/android/classmethod/jp/altbeaconlibrarysample/MyActivity.java
・補足

  • パーミッションの設定、ライブラリの導入はやってあります。
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

レイアウトファイルが無い、またはレイアウトファイル名が誤っているようです。
せめて、Androidの基本を学習してから作った方が効率的ですよ。

また、コードはコード用の記述法に修正してください。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/06 21:44

    回答ありがとうございます。
    諸事情で時間があまりない身ですが、出来る限り基本から見直して行きたいと思います。
    追加で質問があるのですが答えて頂けないでしょうか。
    ・レイアウトファイルには手を付けていないのですが、それでは動かないのでしょうか。アプリ起動と同時に情報が取得できればいいなと思っています。
    ・「コードはコード用の記述法に修正してください。」とのことですが、
    どのように書けばいいのか分かりません。そのまま書くのではいけないのでしょうか。

    キャンセル

  • 2017/11/07 13:19

    ネットのコードを適当に拾っても動きません、今回のコードはレイアウトファイルが無いと動きません。

    コード用の記述法についてはteratailのヘルプページを一通り見てください。

    キャンセル

  • 2017/11/13 18:54

    もう一度冷静に書いてみます。
    今回は回答していだだきありがとうございました。

    キャンセル

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

  • ただいまの回答率 91.02%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    AndroidSQLite

    現在Fragment内でSQLiteDatabaseを利用しようとしているのですが、エラーが出てしまい困っています。 SQLiteOpenHelperを継承したクラスで ~~~~

  • 解決済

    Android Fragmentについて

    Fragmentで複数Tabを用意して一つ目のTabにListviewを実装したいのですが何故か表示されません いろいろサイトを回ったのですがわかりません、初心者なので簡単な見落と

  • 解決済

    AndroidViewPager

    現在FragmentTabHostの中にViewPagerを作っているのですが、タブを切り替えて戻ってくるとViewPagerの画面が表示されません。 空白の画面を何回かフリックす

  • 解決済

    【Android】非同期処理後にページ遷移をしたい

    【10月6日質問編集】 おこなっていることは、 dialogfragmentでonClickをすると非同期処理をおこない、  非同期処理が終了したら Activityの遷移をおこ

  • 解決済

    ListFragmentのアイテムを削除すると、一つ下のアイテムが重なって表示される

    ListFragmentの一番上のアイテムを削除すると、一つ下のアイテムが一番上のアイテムに重なって表示されてしまいます。現在リストのアイテム数は2つあり、2つ目のアイテムのみを削

  • 受付中

    Androidでタイトルを消したい

    Android Studio, Mac OS X, Android5.1で開発をしています。 タイトルを消したいと考えて、 MainActivity.javaに、 reque

  • 解決済

    facebookログインする際にCallbackされない

    frangmentにてログインボタンを表示し、 それをクリックすることでfacebookログインをしようとしているのですが、callbackされません。 最初、facebook

  • 解決済

    Android TabLayout + ViewPager の入れ子について

    タブレイアウトの入れ子構造にしたいのですが、どうしても2つ目のタブ移行にページが表示されなく困っております。 実現したい事は親タブにA,Bとありそれぞれのタブに1,2,3とタブが

同じタグがついた質問を見る

  • Android Studio

    3168questions

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