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

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

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

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

AR(Augmented Reality)

AR(Augmented Reality)とは、拡張現実のことです。人が認識する現実の環境で視覚・聴覚などの知覚が感知する情報をコンピュータで拡張する技術、もしくはその環境そのものを表す言葉です。

Q&A

0回答

2097閲覧

(Android Studio) ロケーション型ARアプリ SensorManager.registerListenerでエラーが・・・

kamiya300

総合スコア6

Android Studio

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

AR(Augmented Reality)

AR(Augmented Reality)とは、拡張現実のことです。人が認識する現実の環境で視覚・聴覚などの知覚が感知する情報をコンピュータで拡張する技術、もしくはその環境そのものを表す言葉です。

0グッド

0クリップ

投稿2017/05/04 23:13

###前提・実現したいこと
現在、Android StudioでロケーションベースのARアプリを作成しようと思っています。
###発生している問題・エラーメッセージ
SoftBankのサービス開発者支援サイトにあったコードを基に作成しているのですが、(https://www.support.softbankmobile.co.jp/partner_st/home_tech9/column10-2.cfm)
SensorManager.registerListenerでエラーがでて途方に暮れています。サイトと同じコードを書いているのですが、エラーが消えません。分かる方、ご教授の程お願いします。

エラーメッセージ
Error:(66, 22) エラー: registerListenerに適切なメソッドが見つかりません(GPSARApp,Object,int)
メソッド SensorManager.registerListener(SensorListener,int,int)は使用できません
(引数の不一致:GPSARAppをSensorListenerに変換できません:)
メソッド SensorManager.registerListener(SensorEventListener,Sensor,int)は使用できません
(引数の不一致: ObjectをSensorに変換できません:)
というエラーがでて先に進めなくて困っています。

###該当のソースコード

Java

1import java.util.List; 2 3import android.app.Activity; 4import android.content.Context; 5import android.hardware.Sensor; 6import android.hardware.SensorEvent; 7import android.hardware.SensorEventListener; 8import android.hardware.SensorManager; 9import android.os.Bundle; 10import android.view.Window; 11import android.view.WindowManager; 12import android.view.WindowManager.LayoutParams; 13 14 15 16public class GPSARApp extends Activity implements SensorEventListener{ 17 18 private SensorManager sensorManager; 19 private float[] accelerometerValues = new float[3]; 20 private float[] magneticValues = new float[3]; 21 List listMag; 22 List listAcc; 23 24 private ARView arView; 25 26 27 @Override 28 public void onCreate(Bundle savedInstanceState) { 29 super.onCreate(savedInstanceState); 30 31 32 getWindow().clearFlags( 33 WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 34 getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 35 requestWindowFeature(Window.FEATURE_NO_TITLE); 36 37 38 arView = new ARView(this); 39 40 41 sensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE); 42 listMag = sensorManager.getSensorList(Sensor.TYPE_MAGNETIC_FIELD); 43 listAcc = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER); 44 45 46 setContentView(new CameraView(this)); 47 addContentView(arView, new LayoutParams(LayoutParams.MATCH_PARENT, 48 LayoutParams.MATCH_PARENT)); 49 } 50 51 @Override 52 public void onStart() { 53 super.onStart(); 54 } 55 56 @Override 57 protected void onResume() { 58 super.onResume(); 59 60//ここから赤波線が引かれてエラーになっています。 61 sensorManager.registerListener(this, listMag.get(0), SensorManager.SENSOR_DELAY_NORMAL); 62 sensorManager.registerListener(this, listAcc.get(0), SensorManager.SENSOR_DELAY_NORMAL); 63 } 64//ここまで 65 66 @Override 67 public void onStop() { 68 super.onStop(); 69 sensorManager.unregisterListener(this); 70 } 71 72 @Override 73 public void onAccuracyChanged(Sensor sensor, int accuracy) { 74 } 75 76 77 @Override 78 public void onSensorChanged(SensorEvent event) { 79 switch (event.sensor.getType()) { 80 case Sensor.TYPE_ACCELEROMETER: 81 accelerometerValues = event.values.clone(); 82 break; 83 case Sensor.TYPE_MAGNETIC_FIELD: 84 magneticValues = event.values.clone(); 85 break; 86 } 87 88 if (magneticValues != null && accelerometerValues != null) { 89 float[] R = new float[16]; 90 float[] I = new float[16]; 91 92 SensorManager.getRotationMatrix(R, I, accelerometerValues, 93 magneticValues); 94 95 float[] actual_orientation = new float[3]; 96 97 SensorManager.getOrientation(R, actual_orientation); 98 99 float direction = (float) Math.toDegrees(actual_orientation[0]); 100 arView.drawScreen(direction); 101 } 102 } 103 104 105

###補足情報(言語/FW/ツール等のバージョン
Android Studio / Java

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問