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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

意見交換

クローズ

6回答

1707閲覧

Androidで廃止されたメソッドを使用するとどうなるのか?

takk_014

総合スコア53

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

1グッド

0クリップ

投稿2023/03/21 00:14

編集2023/03/21 00:15

1

0

テーマ、知りたいこと

Googleにより廃止が決定したメソッドを使用するとどうなるのか知りたい。

背景、状況

現在作っているAndroidアプリでWifiManagerのstartScanメソッドを使用したいと思っています。
しかし、startScanメソッドは今後廃止される予定です。
廃止された場合にそのstartScanメソッドを使用するとどうなるのでしょうか?
おそらく最新のAndroidでのみエラーが発生してアプリが落ちたり固まったりすると予想しているのですが違うでしょうか?

OctNasu👍を押しています

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

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

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

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

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

回答6

#1

Zuishin

総合スコア28660

投稿2023/03/21 00:22

廃止されるのであれば、そもそもそれを使用したアプリが起動できなかったり審査に通らなかったりすることもあります。
質問では「最新の」と限定されていますが、過去の OS でもセキュリティアップデートによって使えなくなる可能性は無くはないです。

使ってはいけないものを使ったらどうなるかというのはあまり考える必要はなくて、改修できるものであれば改修すべきです。

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

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

#2

takk_014

総合スコア53

投稿2023/03/21 01:10

#1
Zuishinさん
ご回答ありがとうございます。
とても参考になります。
Androidが一定頻度でWifiスキャンした時に得たWifi情報はいつでも取得できます。
しかしアプリにはユーザーの任意のタイミングでWifiスキャンさせた時に得たWifi情報を取得させたいです。
それができるのは非推奨のstartScanメソッドだけのようです...

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

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

#3

Zuishin

総合スコア28660

投稿2023/03/21 02:12

非推奨にしたということは、それをすることで何か問題があるということなので、そもそもそれをさせてはいけないということでしょう。

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

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

#4

jimbe

総合スコア12646

投稿2023/03/21 03:51

編集2023/03/21 03:52

どうなるかは明言されていなかったと思います。なので予想した所で意味はありません。
要は、公式には無いことにするからそれでも使うならサポートは自分でやってね…でしょう。

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

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

#5

poto568

総合スコア258

投稿2023/03/24 07:57

※意見交換タグがついていますし、私はそっち系の専門家ではないので雑談半分で読んで下さい。

とりあえず公式ドキュメントには以下の記述があります。


https://developer.android.com/guide/topics/connectivity/wifi-scan?hl=ja
Android8.0(APIレベル26)では、権限と許可されるWi-Fiスキャンの
頻度に関する制限が導入されました。
ネットワークパフォーマンス、セキュリティ、電池寿命を改善するため、
Android9(APIレベル28)では権限に関する要件を厳格にし、
Wi-Fiスキャンの頻度をさらに制限しました。
Android9:
各フォアグラウンドアプリは、2分間の間に4回スキャンを実行できます。
これにより、短時間で大量のスキャンを行うことができます。
Android10以降:
Android9と同じスロットリング制限が適用されます。


たぶん昔どこかのアホな子が100ミリ秒に1回スキャンループみたいなのを
実装して、無意味に凄い勢いで電池がなくなったりスマホで目玉焼きを
焼いたりしたりしたのでしょう。
ある意味、現状はアプリ側で細かいフールプルーフを実装しなくても
OSレベルで実装されているので、助かるんじゃないでしょうか。
Android的には「2分で4回スキャン」を「短時間で大量」と思っている
らしいので、今後これより増えることはないでしょう。
(んなアホなことあるかいな?と思って英語表示にしてみましたが
「This allows for a burst of scans in a short time.」と書いて
ありました。burstっていうくらいなら1秒間に16回くらい押させてほしい。)

まあ実際問題、その端末が使用できる周波数ぜんぶ順番にスキャンする
のって、そこそこ時間かかりそうですよね。(とだけ書いて終わろうと
思ったのですが、一応ついでに調べてみましたがよくわかりませんでした。)

自分で試していないのでイマドキの機種でどうなのかはわかりませんが、
2011年の記事では、802.11b/gで「全チャンネルの(パッシブ)スキャンには
1.5ms-数ms程度かかってしまう」と書いてありました。(pdfファイル)
https://ipsj.ixsq.nii.ac.jp/ej/?action=repository_uri&item_id=73015&file_id=1&file_no=1

私はそっちの業界の人ではないので、ここ10年程度で何か劇的に仕組み
レベルで改善されているのかもしれませんがとりあえず知らないので
上記の延長でお話をすると、現状ではさらに5GHz帯が実装されていて、
今後使用できる周波数帯が増えていくので、全チャンネルスキャンに
かかる時間は増加するでしょう。これはアクセスポイント側のビーコンが
100msec間隔というあたりに律速されるはずなので、端末のCPUが高速化
しても改善しないと思います。(もっというとビーコン間隔を詰めると
電波の使用効率が悪くなるので、こちらも改善(?)されるとは考えにくい
です。あ、でも端末にたくさんアンテナとチップ乗せたら並列稼働
できるのかな。)

ちなみにAndroid9でstartScanの実験をしている方がおられましたので
引用しておきます。


https://ymgsapo.com/2022/12/19/androidwifi-scan/
Android9以降でフォアグラウンドアプリの場合、2分間で4回までの
スキャンが許されている。
試しに5回目のスキャンをしてみたら、scanFailureが呼び出された。


「スキャン連打できるUI用意したけどどうせ内部で無効にされてるので
ほとんど意味ない」と「連打するUIがなくて不満」の二択ですかね…。
(あれ?前者の方がマシなのでは…。)

というわけで、非推奨のメソッドは代替メソッドが用意されたりする
こともあると思いますが、startScanについては上記の理由でたぶん
廃止されて終了になると予想できます。
メソッドがほんとうに廃止されてしまった後は、既出ですがいろいろ
不具合が発生すると思います。
「アプリが落ちたり固まったり」はエラーハンドリングの実装次第
じゃないですかね。(そのうちビルドもできなくなるような気は
しますが。)

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

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

#6

takk_014

総合スコア53

投稿2023/04/11 02:37

編集2023/04/11 02:39

#5
なるほど、いつ廃止されるかも廃止後にどうなるかもAndroid開発元であるGoogleさんの気分次第なんですね。
bleScannerのstartScanは非推奨になっていないのにwifimanagerのstartScanだけ非推奨になっているということは後者で何か悪いことをした人がいたのかもしれないですね。
いや、wifimanagerのstartScanの場合は頻繁にWifi情報を取得することによってユーザーの位置情報を常に把握しようとした輩がいたのかも...

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

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

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問