どうもこんにちは。
家ではBand 26しか掴みません。
エリアマップでは対応してるっぽいので、恐らくau回線のほうが安定してるからauの方に繋がっちゃうとかそういう事なのかな。
本題
楽天回線か判断するアプリを書きます。
環境
なまえ | あたい |
---|
Android | 11 |
端末 | Sony Xperia 5 mk 2 (念願の高リフレッシュレート + SDカード対応端末) |
言語 | Kotlin |
最低Android SDKバージョン | 28 (Android 9 以降) |
作り方
app/build.gradle
ViewBindingを有効にしてください。
android {
compileSdkVersion 30
buildToolsVersion "30.0.3"
defaultConfig {
applicationId "io.github.takusan23.whereisrakutenarea"
minSdkVersion 28
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
// これ
buildFeatures {
viewBinding true
}
}
あと、Activity Result API
を使いたいので以下のように
dependencies {
// Activity Result API
implementation 'androidx.activity:activity-ktx:1.3.0-alpha06'
implementation 'androidx.fragment:fragment-ktx:1.3.2'
// 以下省略
}
activity_main.xml
まあTextViewと取得用Buttonを置いておきましょう
MainActivity.kt
権限の確認
Activity Result API
が便利すぎる。権限を使いたいので付与をお願いします的なメッセージを出したほうが親切だと思う。
楽天回線か確認する関数
関数内に関数があるけど気にしないで
全体
実行するとこんな感じ
ソースコードです
https://github.com/takusan23/WhereIsRakutenArea
おわりに
新しめのAndroidでしかこの方法が使えない。
Android 7以降はEARFCN
を取得するAPIが使えるので、
EARFCN取得→バンド/EARFCNの表と照合→接続中バンドを取得→バンド3なら楽天回線!
みたいな方法もあります(そのうち書きたい)。
以上です。今日は夜勤