私のアプリでは、接続されたWi-Fissidを取得する必要があります。テストデバイス(SAMSUNG J7コア)androidバージョン8.1.0で最新のソフトウェアを更新する前に、次のコードが機能し、getConnectedWifiSSID()を呼び出すと接続されたwifissidを返します。
しかし、デバイス(SAMSUNG J7コア)の最新のソフトウェアを更新した後、getConnectedWifiSSID()を呼び出すと、不明なSSIDが返されます。いくつか提案をお願いします。この問題をどのように解決すればよいですか?
次のコードでwifissidを取得しましたが、(SAMSUNG J7コア)Androidバージョン8.1.0で最新のソフトウェアを更新する前に機能します。
public String getConnectedWifiSSID() {
WifiInfo wifiInfo = (WifiInfo) wifiManager.getConnectionInfo();
try {
return formatSSID(wifiInfo.getSSID());
} catch (NullPointerException e) {
e.printStackTrace();
return null;
}
}
私はすでにAndroidManifest.xmlでこの権限を適用しています。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
また、すでにユーザーにACCESS_FINE_LOCATION権限を要求しました。
Dexter.withActivity(this)
.withPermission(Manifest.permission.ACCESS_FINE_LOCATION)
.withListener(new PermissionListener() {
@Override
public void onPermissionGranted(PermissionGrantedResponse response) {
setUpFirebaseRemoteConfig();
}
@Override
public void onPermissionDenied(PermissionDeniedResponse response) {
finish();
}
@Override
public void onPermissionRationaleShouldBeShown(PermissionRequest permission, PermissionToken token) {
token.continuePermissionRequest();
}
}).check();
私はこの問題の解決策を得ました。
SAMSUNG J7コアのファームウェアを更新する前に、プログラムで接続されたWi-Fi名を取得できます。しかし、SAMSUNG J7コアでファームウェアを更新した後、プログラムで接続されたWi-Fi名を取得しようとすると、が返されます。だから、バグ番号。2342が発生します。
この問題は、デバイスでGPSを有効にすることで解決できます。(ユーザーはGPSを有効にする必要があります)デバイスのGPSが有効になっている場合、プログラムで接続されたWi-Fi名を取得できます。GPSがオフの場合、wifi名を取得するとが返されます。
SSIDを取得するには、デバイスで位置情報サービスを有効にする必要があります。いくつかの最新のファームウェアバージョンとAndroidバージョン9.0。
https://developer.android.com/about/versions/pie/android-9.0-changes-all
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加