标签: android-wifi

连接Wifi时,CONNECTIVITY_ACTION意图收到两次

在我的应用程序中,我有一个BroadcastReceiver通过<receiver>标签作为组件启动,过滤android.net.conn.CONNECTIVITY_CHANGE意图.

我的目标只是知道何时建立了Wifi连接,所以我在做的onReceive()是:

NetworkInfo networkInfo = intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
if(networkInfo.getType() == ConnectivityManager.TYPE_WIFI && networkInfo.isConnected()) {
    // Wifi is connected
}
Run Code Online (Sandbox Code Playgroud)

它工作正常,但在建立Wifi连接时,我似乎总是在大约一秒钟内得到两个相同的意图.我想看看任何信息,我可以从意图,获得ConnectivityManagerWifiManager,但我无法找到任何区别这两种意图.

查看日志,至少还有一个BroadcastReceiver也接收到两个相同的意图.

它运行在搭载Android 2.2的HTC Desire上

任何想法为什么我似乎在Wifi连接时获得"重复"的意图或两者之间的差异可能是什么?

android android-wifi android-broadcastreceiver

50
推荐指数
3
解决办法
5万
查看次数

如何通过亚行关闭Wifi?

我自动化wifi呼叫的测试程序,我想知道有没有办法通过adb关闭/开启wifi?

我想要禁用/启用wifi或杀死wifi呼叫(com.movi​​al.wificall)并重新启动它.

是否可以通过adb和shell命令执行此操作?

到目前为止,我发现:

android.net.wifi.WifiManager
setWifiEnabled(true/false)
Run Code Online (Sandbox Code Playgroud)

我只是不确定如何把它放在一起

shell android adb android-wifi

48
推荐指数
7
解决办法
9万
查看次数

在Android中获得WiFi信号强度

我可以使用以下代码获得以dBm为单位的WiFi信号电平.

for (ScanResult result : wifiScanResultList) {
    int signalLevel = result.level;
}
Run Code Online (Sandbox Code Playgroud)

它给出了负面价值.当我们看到默认的系统WiFi设置并点击连接的WiFi网络时,它会给出"好"或"坏"作为信号强度.我们可以将这些负值过滤为"良好"信号强度或"差"信号强度的范围是多少?

android android-wifi

45
推荐指数
5
解决办法
6万
查看次数

Android 6.0中的SCAN_RESULTS_AVAILABLE_ACTION返回空列表

昨天我的Nexus 5收到了Android MNC版本的更新6.0 - Marshmallow.从那时起,扫描设备中可用网络的操作就会停止接收列表,在这种情况下,结果列表的大小为0,即使在Wifi系统设置中列出了10多个Wifi网络.

通常的代码是:SCAN_RESULTS_AVAILABLE_ACTION在Receiver中注册并等待事件,如下所示:

// Register the Receiver in some part os fragment...
getActivity().registerReceiver(wifiListener, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
WifiManager wifiManager = (WifiManager) getActivity().getSystemService(Context.WIFI_SERVICE);
wifiManager.startScan();

// Inside the receiver:
WifiManager wifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
List<ScanResult> results = wifiManager.getScanResults();
// the result.size() is 0 after update to Android v6.0, same code working in older devices.
Run Code Online (Sandbox Code Playgroud)

我搜索了有关此主题的API主题的更改,但我没有看到此功能的任何重大更改.

有没有人注意到这个?API中是新的东西还是仅仅是一个孤立的案例?

android android-wifi android-6.0-marshmallow

45
推荐指数
4
解决办法
3万
查看次数

Android模拟器wifi连接没有互联网

我浪费了一整天的时间尝试在SO和其他提到的地方漂浮的不同解决方案,以便在Android模拟器上启用wifi,但无济于事.任何人都可以帮我弄清楚如何在我的Android模拟器上启用互联网?

我有Nexus 5X API 27,目标是Android 8.1(Google Play)和Nexus 5 API P,目标是Android 7.1.1.

我相信应该有一种方法来启用互联网,否则在模拟器上提供虚拟wifi的重点似乎是浪费.

我在mac OS HS 10.13.4上直接连接到没有代理的路由器.

我甚至尝试删除所有avds,重新安装它们.我甚至尝试使用Oreo Android 8.1安装最新的Pixel 2

似乎没有什么工作.有人遇到过这个问题并找到了解决方案吗?

任何帮助都会有很大的帮助

谢谢,维克拉姆

更新:当我通过手机将我的电脑连接为热点wifi时,模拟器通过wifi连接互联网,但是当我将计算机连接到家用路由器时它失败了.

android android-emulator android-wifi android-studio

42
推荐指数
18
解决办法
3万
查看次数

获取我的wifi ip地址Android

如何在wifi下连接时获取手机的IP地址?

我在这里找到了一个方法,但它返回了类似24.182.239.255的东西,即使我在wifi下,我期待像192.168.1.10这样的东西.

我喜欢这样的东西:

if (you are under wifi)
    String ip4 = getWifiIP()
else
    String ip4 = getIPAddress with the method linked before
Run Code Online (Sandbox Code Playgroud)

非常感谢!

ip android android-networking android-wifi

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

评估连接速度的最佳方法

我正在开发一个应用程序,需要通过流媒体播放音乐文件进行现场直播.

在请求歌曲api中,我可以指定带宽(例如:50kbps,100kbps,300,600或1Mbps).

bandwith越大,文件就越有时间获取.由于我不希望用户受到限制,因此我有多种选择来处理它:

  • 检测手机是否正在使用3g,wifi或Edge,并为每个连接速度指定带宽.

  • 让用户决定他将获得的歌曲的质量:像youtube(但用户不会是那些对计算有更多了解的人:软件越容易,它就越适合)

  • 有办法正确评估连接速度:就像获取文件一样,测量它所花费的时间并设置带宽.

我知道如果用户松开wifi,或者在街上使用3g移动,连接速度可能会有很大变化.而事实是,当歌曲播放时我无法改变带宽.

也许你有关于你想分享的经验?

谢谢!

networking android 3g android-wifi

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

如何避免Android GCM消息延迟/改变心跳

我一直在阅读很多关于影响某些人的GCM问题的帖子.似乎在一些设备/路由器/运营商中,通知遭受延迟.我的路由器经历过这个问题:WIFI上的消息有很多延迟,但是当我禁用WIFI并连接到移动网络时,消息就会立即出现.

似乎可以通过Android应用程序完成解决方法.像增加心跳使GCM连接保持活跃等等.

任何人都可以告诉我们我们应该做些什么来避免延误?我们如何通过Android应用程序保持与GCM的连接?代码示例(以及在何处以及如何使用它)将非常有用.

这篇文章解释了这个问题.它说"我们可以通过每两分钟从GCM服务器(这是免费的)ping一直保持连接".我们怎么做?

非常感谢


以下应用似乎可以解决问题.令人惊讶的是,第一个不需要任何许可,第二个是互联网连接,第三个仅适用于root电话:

https://play.google.com/store/apps/details?id=at.pansy.droid.gcmWifiFix

https://play.google.com/store/apps/details?id=com.elotro.pushheartbeat

https://play.google.com/store/apps/details?id=com.andqlimax.pushfixer

android push-notification wifi android-wifi google-cloud-messaging

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

WIFI开启时通过移动数据发送请求.(Android L)

SDK:Android 5.0.1.

Android版本:LRX22C.

设备:Nexus 5.

问题:KITKAT(4.4.4)及以下API

1)startUsingNetworkFeature(int networkType, String feature) 不推荐使用此方法.不赞成使用清洁剂requestNetwork(NetworkRequest, ConnectivityManager.NetworkCallback).

2)requestRouteToHost(int networkType, int hostAddress) 不推荐使用此方法.贬低赞成requestNetwork(NetworkRequest, ConnectivityManager.NetworkCallback),setProcessDefaultNetwork(Network)getSocketFactory().

用于在WIFI和移动数据打开时通过移动数据网络发送请求.

启动Android L后,API已弃用,不再有效.

新的API /类NetworkRequest.Builder,NetworkRequest,ConnectivityManager.NetworkCallback,requestNetwork,registerNetworkCallback分别使用. 详细信息这里有关于API使用
Android L API的信息

码:

ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkRequest.Builder builder = new NetworkRequest.Builder();

builder.addCapability(NetworkCapabilities.NET_CAPABILITY_NOT_RESTRICTED);
builder.addTransportType(NetworkCapabilities.TRANSPORT_CELLULAR);

NetworkRequest networkRequest = builder.build();
connectivityManager.requestNetwork(networkRequest, networkCallback);
connectivityManager.registerNetworkCallback(networkRequest, networkCallback);
Run Code Online (Sandbox Code Playgroud)

工作场景:

onAvailable接收回调上的移动数据.

不工作场景:移动和Wifi都已打开并连接,onAvailable未从系统接收回叫.因此无法设置setProcessDefaultNetwork, ConnectivityManager.setProcessDefaultNetwork(preferedNetwork);

经常:永远

预期输出:当wifi打开时获取移动网络avaliabe回调. …

networking android android-wifi android-5.0-lollipop

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

无需特殊应用即可通过NFC标签分享Wifi凭据

我正在寻找一种方法来创建一个NFC标签,该标签共享我的网络的wifi凭据,而我的客人不必在他们的手机上安装任何特殊的NFC应用程序(除了随手机提供的).我一直在寻找NFC标签编写器,WifiTap,NFC任务启动器和NFCLabels.com等应用和服务,但在我看来,我需要在客户移动设备上安装应用程序以便能够使用它,但我无法测试它,因为我只有一部支持NFC的手机.(是的,我知道,绞尽脑汁,但是,哎呀,奇怪的行为并不是什么新鲜事......)

我最接近的线索是WifiTap声明:

该应用程序以wifi:// [network ssid]/[wep | wpa | open]/[network key]的格式处理URI

如果这实际上是普遍的,这意味着我可以做我想做的事,但我没有找到任何确认.那么,我想要做什么怎么样才能完成,我是否能够利用WifiTap的线索走上正轨?

android nfc wifi android-wifi

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