2017-03-17 25 views
2

Android-7.1.1、SDK-25.3.0の使用Android搭載のWiFi放送受信機7.1.1

WiFi放送受信機に問題があります。 Android-7.0.xまではすべてうまくいきました。しかし、今、Android-7.1.1にアップデートしました。最新のSDKでは、私のWiFiブロードキャストレシーバーはもう値を返しません。

List<ScanResult> resultList = wifi.getScanResults();は、いくつかの価値ある値の前のようなものではなく、0を返します。どうしてこれなの ??? Androidのアップデートにより、私のコードに何が起こったのですか、それとも何か間違いがありますか?どんな助けにも感謝!

以下

私のコードです:フラグメント(ない完全なフラグメントが、excerts ...)内部のWiFi-放送受信機の設定

:ここ

public class ScanTeachingFragment extends Fragment implements MyWifiReceiver.OnWiFiResultListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 

     // set up WiFi Manager 
     this.wifiManager = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE); 
     if (wifiManager.isWifiEnabled()) { 
      // register Broadcast-Receiver for WiFi 
      receiverWifi = new MyWifiReceiver(this.context); 
      IntentFilter filterWiFi = new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION); 
      getActivity().registerReceiver(receiverWifi, filterWiFi); 
     } 
     // setListener necessary otherwise null-pointer occurs in WiFiReceiver 
     receiverWifi.setListener(this); 
    } 

    private void ScanWifi() { 

     if (!IndoorNavHelpers.inEmulator()) { 
      wifiManager.setWifiEnabled(true); 
      wifiManager.startScan(); 
     } 
    } 
} 

は、WiFi-放送受信機であります実装:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     applicationId "com.xxxx.yyyy" 
     minSdkVersion 25 
     targetSdkVersion 25 
     versionCode 1 
     versionName "0.0.2(26)" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:25.3.0' 
    compile 'com.android.support:support-v4:25.3.0' 
    compile 'com.android.support:design:25.3.0' 
    compile files('libs/ftp4j-1.7.2.jar') 
    compile 'org.greenrobot:eventbus:3.0.0' 
    compile 'com.github.johnkil.print:print:1.2.2' 
    compile 'com.github.bmelnychuk:atv:1.2.+' 
} 
:ここ

package com.xxxx.yyyy.broadcast_receiver; 

import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.net.wifi.ScanResult; 
import android.net.wifi.WifiManager; 
import java.util.List; 

public class MyWifiReceiver extends BroadcastReceiver { 

    private Context context; 
    OnWiFiResultListener resultListener; 

    // ScanFragment must implement this interface 
    public interface OnWiFiResultListener { 
     void scanWiFireceived(List<ScanResult> resultList); 
    } 
    // create setListener class (otherwise null-pointer occurs) 
    public void setListener(OnWiFiResultListener listener) { 
     this.resultListener = listener; 
    } 

    public MyWifiReceiver(Context context) 
    { 
     this.context = context; 
    } 
    // This method call when number of wifi connections changed 
    public void onReceive(final Context context, Intent intent) { 

     WifiManager wifi = (WifiManager)this.context.getSystemService(Context.WIFI_SERVICE); 
     List<ScanResult> resultList = wifi.getScanResults(); 

     // ??????????????????????????????????????????????????????????? 
     // Here resultList returns 0, WHY ???????????????????????????? 
     // ??????????????????????????????????????????????????????????? 

     // append newly found WiFi-scanResults to WiFiSniffing_File by calling callback-method in MainActivity 
     if(resultListener != null) { 
      resultListener.scanWiFireceived(resultList); 
     } 
    } 
} 

は私のGradleファイルですここで

私のマニフェスト・ファイルです:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.xxxx.yyyy"> 

    <uses-permission android:name="android.permission.USE_FINGERPRINT" /> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> 

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 

    <uses-permission android:name="android.permission.android.permission.WAKE_LOCK" /> 

    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/yyyy_icon" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme" 
     android:largeHeap="true"> 
     <activity 
      android:name=".activity.MainActivity" 
      android:launchMode="singleTop" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar" 
      android:screenOrientation="portrait" 
      android:excludeFromRecents="true"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" /> 
       <action android:name="android.hardware.usb.action.USB_DEVICE_DETATCHED" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
      <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter" /> 
      <meta-data android:name="android.hardware.usb.action.USB_DEVICE_DETACHED" android:resource="@xml/device_filter" /> 
     </activity> 
    </application> 

</manifest> 

答えて

0

私は最終的に解決策を見つけた:私は私のネクサス5Xと再インストールのAndroidヌガー7.1.1を工場出荷時にリセットする場合は、私のコードが再び動作します!その間に携帯電話を壊したのは何ですか?上記のコードは現在動作しています!

0

あなたのGPSをオンに..アンドロイド7権限ACCESS_COARSE_LOCATIONとACCESS_FINE_LOCATIONについては

は、Wi-Fiはスキャン結果を得るためにneccessaryです。また、デバイスの場所をオンにする必要があります。

関連する問題