标签: network-scan

android BluetoothDevice.getName()返回null

有时,BluetoothDevice.getName()返回null.我该如何解决?remoteDeviceName在以下代码中可能为null.我需要通过remoteDeviceName来区分我的设备和其他设备.

BluetoothAdapter.getDefaultAdapter().startLeScan(new LeScanCallback() {
            @Override
            public void onLeScan(final BluetoothDevice device, final int rssi,
                    byte[] scanRecord) {
                    String remoteDeviceName = device.getName();
                  Log.d("Scanning", "scan device " + remoteDeviceName);
            });
Run Code Online (Sandbox Code Playgroud)

null android bluetooth device network-scan

13
推荐指数
2
解决办法
2万
查看次数

Android BLE被动扫描

我想在我的Android应用程序中被动地扫描BLE广告客户.
但我找不到如何做到这一点.

但我无法找到是否可以使用被动扫描模式.

问题:是否可以在Android上使用"PASSIVE SCAN"?如果可能,如何使用此功能?

android bluetooth-lowenergy network-scan

12
推荐指数
1
解决办法
2万
查看次数

使用Java扫描并连接到Wifi网络

需要编写一个客户端,它可以扫描可用的WIFI网络,并使用Java连接到最知名的网络.这可能是执行此任务的桌面客户端.任何指针都会有所帮助,感谢您的回复.

java network-programming wifi network-scan

10
推荐指数
1
解决办法
1万
查看次数

获取BLE扫描,不使用过滤器复制UUID

我正在写一个BLE应用程序,需要跟踪外围设备是广告还是停止.

我跟着获得了没有重复的外围设备startLeScan()的 BLE 过滤行为,我在这里完全同意.

为了使其可行,我保留了定时器,在一定时间(3秒)后重新扫描外围设备.但随着市场上新设备的推出(5.0更新),一些时间重新扫描需要一些时间来寻找外围设备.

任何建议或是否有人实现了这一点?

android bluetooth-lowenergy network-scan

10
推荐指数
2
解决办法
2703
查看次数

iOS BLE后台扫描

我在理解当iOS应用程序处于bacground时如何执行扫描时遇到一些麻烦.我有一个非常简单的测试应用程序,它只扫描设备并将结果输出到控制台.我已经在Info.plist中添加了bluetooth-central到所需的后台模式,所以我应该没问题,我正在使用一个指定的服务扫描设备,即

NSArray *cbuuidArray = [NSArray arrayWithObjects:[CBUUID UUIDWithString:@"UUIDFromUUIDGEN"],nil];
[self.centralManager scanForPeripheralsWithServices:cbuuidArray options:@{ CBCentralManagerScanOptionAllowDuplicatesKey : @YES }];
Run Code Online (Sandbox Code Playgroud)

当应用程序处于前台时,我只有一个(或没有)BLE设备连接到电源,因此iOS检测到它并经常显示结果.当我转到后台时,没有更多的第一个设备的结果,因为CBCentralManagerScanOptionAllowDuplicatesKey设置为NO.

在这一点上,我正在为第二个BLE设备供电,并急切地等待它显示在结果中.等了10分钟后什么也没出现.自我上次发出通知以来,应用程序未终止,applicationDidEnterBackground并且applicationWillTerminate在我处理任务时从未调用过.

以一种非常偶然的方式,我发现如果我的应用程序正在运行并且仍然在后台扫描而另一个BLE扫描应用程序(我正在使用优秀的BLExplr)位于前台并开始扫描,那么我的应用程序最终会在同时作为前景应用.这是有道理的,因为广告数据包由系统处理并发送到应用程序,但为什么我的应用程序不能自己接收任何内容?

有没有人有类似的经历或知道这可能是由什么引起的?我已经阅读了关于背景和蓝牙的所有Apple资源,但没有关于此问题的提示.我正在使用iOS 5.1.1开发iOS 4s.我主要ViewController是一个CBCentralManagerDelegate委托看起来是这样的.

@implementation MainViewController

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        // Custom initialization
        self.centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
    }
    return self;
}

#pragma mark -
#pragma mark CBCentralManagerDelegate methods

- (void)centralManagerDidUpdateState:(CBCentralManager *)central
{
    if( central.state == CBCentralManagerStatePoweredOn ){
        NSArray *cbuuidArray = …
Run Code Online (Sandbox Code Playgroud)

background ios bluetooth-lowenergy network-scan

9
推荐指数
1
解决办法
4902
查看次数

Android - 如何扫描接入点并选择最强的信号?

我目前正在尝试在Android中编写一个类来扫描接入点,计算哪个接入点具有最佳信号,然后连接到该接入点.

因此,应用程序将能够在移动中扫描并随时附加到新的接入点.

我有扫描和计算最好的信号工作.

但是当涉及到附加到最佳接入点时,我遇到了麻烦.

似乎enableNetwork(netid,othersTrueFalse)是附加到Access点的唯一方法,但这会导致我的扫描结果出现问题我无法获得信号最强的接入点的id.

这是我的代码:


public void doWifiScan(){

  scanTask = new TimerTask() {
  public void run() {
      handler.post(new Runnable() {
          public void run() {
               sResults = wifiManager.scan(getBaseContext()); 
               if(sResults!=null)
               Log.d("TIMER", "sResults count" + sResults.size());
               ScanResult scan = wifiManager.calculateBestAP(sResults);
               wifiManager.addNewAccessPoint(scan);
           }
       });
    }};

    t.schedule(scanTask, 3000, 30000); 
}
Run Code Online (Sandbox Code Playgroud)
public ScanResult calculateBestAP(List<ScanResult> sResults){

     ScanResult bestSignal = null;
        for (ScanResult result : sResults) {
          if (bestSignal == null
              || WifiManager.compareSignalLevel(bestSignal.level, result.level) < 0)
            bestSignal = result;
        }

        String message = String.format("%s networks found. %s …
Run Code Online (Sandbox Code Playgroud)

android signals wifi wifimanager network-scan

8
推荐指数
1
解决办法
7749
查看次数

查找本地网络中的所有IP地址

我想找到我当前使用Java代码连接的本地网络中设备的所有IP地址.有用的实用程序Advanced IP Scanner能够在我的子网中找到各种IP地址192.168.178/24:

根据这个答案,我按以下方式构建了我的代码:

import java.io.IOException;
import java.net.InetAddress;

public class IPScanner
{
    public static void checkHosts(String subnet) throws IOException
    {
        int timeout = 100;
        for (int i = 1; i < 255; i++)
        {
            String host = subnet + "." + i;
            if (InetAddress.getByName(host).isReachable(timeout))
            {
                System.out.println(host + " is reachable");
            }
        }
    }

    public static void main(String[] arguments) throws IOException
    {
        checkHosts("192.168.178");
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,这不会打印出任何结果,这意味着无法访问任何IP地址.为什么?我的本地网络中有设备,如Advanced IP Scanner扫描中所见.

java networking network-scan

8
推荐指数
2
解决办法
2万
查看次数

除了侦听Probe Requests之外,还可以使用哪些方法来查找802.11 wifi设备?

我正在编写一个用于查找附近WiFi客户端设备的Python模块.我当前所有的扫描程序都是侦听Probe Requests并记录客户端的MAC地址.

我遇到的问题是我完全依赖设备广播探测请求让我发现它.

我想知道是否有其他方式来发现设备.使用此站点作为802.11指南,我想出了这些想法:

  • 发送具有通用SSID的广播数据包,以查看客户端是否响应.例如,发送带有"Netgear"作为AP SSID的广播,并查看是否有任何已知"Netgear"配置文件的客户端响应
  • 发送解除关联数据包以强制已连接的客户端重新扫描电视广播

我还没有测试过这两个想法.只是吐球.

思考?

python networking wireless wifi network-scan

7
推荐指数
1
解决办法
4103
查看次数

更快的WiFi扫描速率获取rssi更改android

我正在尝试增加wifi扫描速率,但使用方法wifi.startscan并获取返回的列表结果的信息,我没有看到rssi每2秒更改一次.我的问题是,是否有可能获得rssi的低速率扫描,如果有可能我怎么能这样做.

android rssi rate wifi network-scan

7
推荐指数
1
解决办法
1510
查看次数

Android设备扫描后列出BLE设备

您能否为我提供扫描附近BLE设备的简单代码,并按设备名称和MAC ID列出.我使用http://developer.android.com/guide/topics/connectivity/bluetooth-le.html中提供的示例代码尝试了这一点.但是没有用,任何参考链接或想法,因为我是BLE应用程序的新手.

android device bluetooth-lowenergy network-scan

7
推荐指数
2
解决办法
3万
查看次数