「Android/非推奨コード」の版間の差分
提供: 初心者エンジニアの簡易メモ
(→Android7.0以降getConfiguration().localeは非推奨) |
(→webview系の非推奨コード) |
||
行19: | 行19: | ||
==webview系の非推奨コード== | ==webview系の非推奨コード== | ||
[[android/webview/非推奨コード]] [ショートカット] | [[android/webview/非推奨コード]] [ショートカット] | ||
+ | |||
+ | ==警告: [deprecation] NetworkInfoのgetType()は非推奨になりました== | ||
+ | NetworkクラスがAPI23から使えるようになってるのでそちらで置き換える。 | ||
+ | <pre> | ||
+ | ConnectivityManager manager = (ConnectivityManager) | ||
+ | context.getSystemService(Context.CONNECTIVITY_SERVICE); | ||
+ | NetworkInfo networkInfo = manager.getActiveNetworkInfo(); | ||
+ | if (networkInfo != null && networkInfo.isConnected()) { | ||
+ | Log.i("tag", "connected"); | ||
+ | } else { | ||
+ | Log.i("tag", "not connected"); | ||
+ | return; | ||
+ | } | ||
+ | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { | ||
+ | Network network = manager.getActiveNetwork(); | ||
+ | if (network != null) { | ||
+ | NetworkCapabilities capabilities = manager.getNetworkCapabilities(network); | ||
+ | if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) { | ||
+ | Log.i("tag", "wifi m"); | ||
+ | Toast.makeText(context, "wifi m", Toast.LENGTH_LONG).show(); | ||
+ | } else { | ||
+ | Log.i("tag", "mobile"); | ||
+ | Toast.makeText(context, "mobile m", Toast.LENGTH_LONG).show(); | ||
+ | } | ||
+ | } | ||
+ | } else { | ||
+ | if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { | ||
+ | Log.i("tag", "wifi"); | ||
+ | Toast.makeText(context, "wifi", Toast.LENGTH_LONG).show(); | ||
+ | } else { | ||
+ | Log.i("tag", "mobile"); | ||
+ | Toast.makeText(context, "mobile", Toast.LENGTH_LONG).show(); | ||
+ | } | ||
+ | } | ||
+ | </pre> | ||
==Android7.0以降getConfiguration().localeは非推奨== | ==Android7.0以降getConfiguration().localeは非推奨== |
2018年8月23日 (木) 18:20時点における版
目次
- 1 非推奨のコードを可視化する
- 2 非推奨コードを特定クラスのみ非表示とする
- 3 webview系の非推奨コード
- 4 警告: [deprecation] NetworkInfoのgetType()は非推奨になりました
- 5 Android7.0以降getConfiguration().localeは非推奨
- 6 expected resource of type id ensures that resource ids passed to apis are of the right type警告
- 7 cannot resolve symbol警告
- 8 value must be same parameter are required to in a particular警告
非推奨のコードを可視化する
build.gradle
allprojects { gradle.projectsEvaluated { tasks.withType(JavaCompile) { options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation" } } }
build/clear後 buildするとコンソールに非推奨コードが表示される
参考:https://qiita.com/nagasakulllo/items/48764c68e6b922c74f67
非推奨コードを特定クラスのみ非表示とする
クラスかメソッドの頭に以下アノテーションを付ける
@SuppressWarnings("deprecation")
webview系の非推奨コード
android/webview/非推奨コード [ショートカット]
警告: [deprecation] NetworkInfoのgetType()は非推奨になりました
NetworkクラスがAPI23から使えるようになってるのでそちらで置き換える。
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = manager.getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isConnected()) { Log.i("tag", "connected"); } else { Log.i("tag", "not connected"); return; } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { Network network = manager.getActiveNetwork(); if (network != null) { NetworkCapabilities capabilities = manager.getNetworkCapabilities(network); if (capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI)) { Log.i("tag", "wifi m"); Toast.makeText(context, "wifi m", Toast.LENGTH_LONG).show(); } else { Log.i("tag", "mobile"); Toast.makeText(context, "mobile m", Toast.LENGTH_LONG).show(); } } } else { if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) { Log.i("tag", "wifi"); Toast.makeText(context, "wifi", Toast.LENGTH_LONG).show(); } else { Log.i("tag", "mobile"); Toast.makeText(context, "mobile", Toast.LENGTH_LONG).show(); } }
Android7.0以降getConfiguration().localeは非推奨
Locale locale = AppStatic.getLocale(context);
@SuppressWarnings("deprecation") public static Locale getLocale(Context context) { Locale locale; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { return context.getResources().getConfiguration().getLocales().get(0); } else { return context.getResources().getConfiguration().locale; } }
参考:https://stackoverflow.com/questions/38267213/how-to-get-the-current-locale-api-level-24
expected resource of type id ensures that resource ids passed to apis are of the right type警告
viewのresourceIdを直接入力すると出るエラーなのでView.generateViewId()にする。ただしbuildSDKLevel17以上から
cannot resolve symbol警告
@paramの変数や@seeのクラスが間違っているのでその部分を修正すればよい。
@paramであれば変数名を記載するようにし、@seeであればその変数のクラス名を書いてあげれば良い。
value must be same parameter are required to in a particular警告
変数に型の範囲外の数字を入れてる