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

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

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

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

Q&A

0回答

440閲覧

AndroidStudio API26

fox8

総合スコア2

Android Studio

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

0グッド

0クリップ

投稿2020/12/07 06:30

前提・実現したいこと

AndroidStudioを使用して緯度経度を出力するアプリを作成しています。
私情によりAPI26の実機を使用しているのですが、デバッグするとエラーが出ます。
API30のエミュレータで実行したときは正しくができました。

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

E/libc: Access denied finding property "ro.serialno"

該当のソースコード

java

1package aaa.bbb.locationexxpro2; 2 3import android.Manifest; 4import android.app.Activity; 5import android.content.Context; 6import android.content.pm.PackageManager; 7import android.graphics.Color; 8import android.location.Location; 9import android.location.LocationListener; 10import android.location.LocationManager; 11import android.os.Bundle; 12import android.view.ViewGroup; 13import android.view.Window; 14import android.widget.LinearLayout; 15import android.widget.TextView; 16import androidx.core.app.ActivityCompat; 17import androidx.core.content.ContextCompat; 18 19//位置情報の取得 20public class Locationexxpro2 extends Activity implements LocationListener { 21 public final static String BR = System.getProperty("line.separator"); 22 private final static int WC = ViewGroup.LayoutParams.WRAP_CONTENT; 23 private final static String[] PERMISSIONS = { 24 Manifest.permission.ACCESS_COARSE_LOCATION, 25 Manifest.permission.ACCESS_FINE_LOCATION}; 26 private final static int REQUEST_PERMISSION = 1; 27 private TextView textView;//テキストビュー 28 private LocationManager manager; 29 30 @Override 31 public void onCreate(Bundle bundle) { 32 super.onCreate(bundle); 33 requestWindowFeature(Window.FEATURE_NO_TITLE); 34 35 //レイアウトの作成 36 LinearLayout layout = new LinearLayout(this); 37 layout.setBackgroundColor(Color.WHITE); 38 layout.setOrientation(LinearLayout.VERTICAL); 39 40 //テキストビューの生成 41 textView = new TextView(this); 42 textView.setText("LocationExxpro2"); 43 textView.setTextSize(24); 44 textView.setTextColor(Color.BLACK); 45 textView.setLayoutParams(new LinearLayout.LayoutParams(WC, WC)); 46 layout.addView(textView);//追加 47 setContentView(layout);//追加 48 49 //ロケーションマネージャーの取得 50 manager 51 = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 52 //ユーザー利用許可のチェック 53 checkPermissions(); 54 } 55 56 //アクティビティ再開時に呼ばれる 57 @Override 58 public void onResume() { 59 super.onResume(); 60 //位置情報更新の開始 61 setLocationUpdateEnabled(true); 62 } 63 64 //アクティビティ一時停止時に呼ばれる 65 @Override 66 public void onPause() { 67 super.onPause(); 68 69 //位置情報更新の開始 70 setLocationUpdateEnabled(false); 71 72 } 73 74 //位置情報を通知する時に呼ばれる 75 public void onLocationChanged(Location location) { 76 //緯度と経度の取得 77 textView.setText(String.format("LocationEx>%s緯度:%s%s経度:%s", BR, location.getLatitude(), BR, location.getLongitude())); 78 } 79 80 //位置情報取得有効化を通知する時に呼ばれる 81 public void onProviderEnabled(String provider) { 82 } 83 84 //位置情報取得無効化を通知する時に呼ばれる 85 public void onProviderDisabled(String provider) { 86 } 87 88 //位置情報更新の開始・停止 89 private void setLocationUpdateEnabled(boolean enabled) { 90 //パーミッションのチェック 91 if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && 92 ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { 93 return; 94 } 95 if (!isGranted()) { 96 return; 97 } 98 99 //ロケーションマネージャの登録と解除 100 try { 101 if (enabled) { 102 manager.requestLocationUpdates( 103 LocationManager.GPS_PROVIDER, 0, 0, this); 104 } else { 105 manager.removeUpdates(this); 106 } 107 } catch (SecurityException e) { 108 e.printStackTrace(); 109 } 110 } 111 112 //ユーザーの利用許可のチェック 113 private void checkPermissions() { 114 //未許可 115 if(!isGranted()) { 116 //許可ダイアログの表示 117 ActivityCompat.requestPermissions(this, PERMISSIONS, 118 REQUEST_PERMISSION); 119 } 120 } 121 122 //ユーザーの利用許可が済かどうかの取得 123 private boolean isGranted() 124 { 125 for (String permission : PERMISSIONS) { 126 if (ContextCompat.checkSelfPermission(Locationexxpro2.this, permission) != 127 PackageManager.PERMISSION_GRANTED) { 128 return false; 129 } 130 } 131 return true; 132 } 133 134 //許可ダイアログ選択時に呼ばれる 135 @Override 136 public void onRequestPermissionsResult(int requestCode, 137 String[] permissions, int[] results) { 138 if (requestCode == REQUEST_PERMISSION) { 139 //未許可 140 if (!isGranted()) textView.setText(String.format("LocationEx>%s位置情報の取得が未許可です。", BR)); 141 } else{ 142 super.onRequestPermissionsResult(requestCode, permissions, results); 143 } 144 } 145}

試したこと

codecreanup、再起動をしましたができませんでした。

補足情報

開発環境はAndroidStudio4.1、Windows10、Android Gradle Plugin Ver4.1.0、Gradle Ver6.5.1、エミュレーターはPixel 2_API26、使用言語はJavaです。その他質問などございましたら何でも答えます。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問