我知道如何获得Android Wifi扫描,但我无法找出制作列表适配器的最佳方法.我想将SSID和BSSID从扫描绑定到text1和text2.
我一直在做的样本
wifi.startScan();
// get list of the results in object format ( like an array )
List<ScanResult> results = wifi.getScanResults();`
// loop that goes through list
for (ScanResult result : results) {
Toast.makeText(this, result.SSID + " " + result.level,
Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
和:
private void fillDataFromDb() {
Cursor scanCursor = Db.fetchAllScans();
startManagingCursor(scanCursor);`
// Create an array to specify the fields we want to display in the list
// (only TITLE)
String[] from = new String[] { WifiDbAdapter.KEY_BSSID,
WifiDbAdapter.KEY_SSID };
// …Run Code Online (Sandbox Code Playgroud) 朋友们,我想找到所有可用的WiFi网络并将其显示在我尝试过的列表中,如下所示.但它不起作用.我已经编辑了我的代码,现在我得到了结果但是得到了我不需要的所有结果.我只需要列表中的wifi网络名称.
public class MainActivity extends Activity {
TextView mainText;
WifiManager mainWifi;
WifiReceiver receiverWifi;
List<ScanResult> wifiList;
StringBuilder sb = new StringBuilder();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mainText = (TextView) findViewById(R.id.tv1);
mainWifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
if (mainWifi.isWifiEnabled() == false)
{
// If wifi disabled then enable it
Toast.makeText(getApplicationContext(), "wifi is disabled..making it enabled",
Toast.LENGTH_LONG).show();
mainWifi.setWifiEnabled(true);
}
receiverWifi = new WifiReceiver();
registerReceiver(receiverWifi, new IntentFilter(WifiManager.SCAN_RESULTS_AVAILABLE_ACTION));
mainWifi.startScan();
mainText.setText("Starting Scan...");
}
public boolean onCreateOptionsMenu(Menu menu) {
menu.add(0, 0, 0, "Refresh");
return super.onCreateOptionsMenu(menu);
} …Run Code Online (Sandbox Code Playgroud) 嗨所有错误报告您的信息.链接
问题详情:
守则 -wifiManager.getConnectionInfo().getSSID()
上面的代码返回当前的SSID,它返回当前的SSID,并在其周围加上额外的引号.
例如.SSID internet返回为"internet".
这只能在使用设备Nexus 7的Jelly bean 4.2上看到.
这个错误导致我们的应用程序出错,因为我们将当前的SSID与我们尝试连接的SSID进行比较.
wifiManager.getScanResults();但是,代码仍会返回所有SSID而没有额外的引号.
我正在开发一个应用程序wifi,用户将被要求输入他选择的扫描网络的密码,如果用户输入正确的密码,它连接并运行良好.但是当用户输入错误的密码时,会添加一个具有该名称的新网络,并且无法验证错误密码的cos,并且它将具有身份验证问题状态.
现在,如果用户尝试再次扫描并选择相同的网络,并输入正确的密码,即使密码现在正确并且将具有禁用状态,它也无法连接,因为之前的连接仍显示该身份验证问题状态.
如何解决这个问题呢?有没有办法忘记使用ConnectivityManager或wifimanager的所有网络?或任何其他解决方案?
我的应用程序直接连接到充当接入点的硬件设备(无法访问互联网).
我无法连接,因为Android 5.0 automaticcaly切换到有效的互联网连接,所以如果我有数据连接(3G,4G,...)或预先配置的网络我无法连接到我的设备,因为它忽略了WiFi .
那么我如何强制Android使用我以编程方式激活的网络?
我只是使用:
wifiManager.enableNetwork(id, true))
Run Code Online (Sandbox Code Playgroud)
id我要连接的设备的网络在哪里.该true参数无用.
使用的建议解决方案ConnectivityManager.requestNetwork()无效.
KitKat具有设置> WiFi>高级WiFi选项来设置优先级,如图所示.
这在我的Nexus Lollipop和Marshmallow设备上不存在.我看到有一个应用程序可用,但我想知道是否有一些我错过了管理这些的机载方式,如果没有,那么它的删除背后的想法是什么.
我正在尝试在android(4. +)中开发一个wifi对等应用程序.这里的问题是如何测试它.
我试图在android模拟器中运行该应用程序.没有选项在设置菜单中配置wifi,我也厌倦了使用开发工具应用程序从模拟器启用wifi,但它没有工作,并通过我所有的谷歌搜索超过3天,我发现Android模拟器不支持无线上网.
所以我选择了使用虚拟盒的androidx86 4.0eeepc并且厌倦了添加wifi和蓝牙设备(我的应用程序同时使用蓝牙和wifi)但是只添加了蓝牙设备并且它无法正常工作.但我的虚拟盒子检测到了wifi和蓝牙设备.我只是无法让他们使用虚拟机.
我尝试了一切,比如在androidx86中使用终端模拟器应用程序手动添加地址,并netcfg通过android命令行使用,但它们都没有工作.
请建议并指导我在正确的路径上运行这些在android中使用wifi和蓝牙的应用程序.
提前致谢.
我正在使用Context来访问WifiManager和BluetoothManager等系统级服务.如何使用Mockito模拟这个getApplicationContext()?
在我的Android应用程序中,我使用以下代码片段:
@RequiresApi(api = Build.VERSION_CODES.O)
private void turnOnHotspot(){
WifiManager manager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
manager.startLocalOnlyHotspot(new WifiManager.LocalOnlyHotspotCallback(){
@Override
public void onStarted(WifiManager.LocalOnlyHotspotReservation reservation) {
super.onStarted(reservation);
Log.d(TAG, "Wifi Hotspot is on now");
}
@Override
public void onStopped() {
super.onStopped();
Log.d(TAG, "onStopped: ");
}
@Override
public void onFailed(int reason) {
super.onFailed(reason);
Log.d(TAG, "onFailed: ");
}
},new Handler());
}
Run Code Online (Sandbox Code Playgroud)
这段代码创建了一个名为"AndroidShare_1234"的热点.对于我的项目,我需要能够为此热点设置密码和SSID,但是我找不到这样做的方法.我想创建一个SSID MyHotspot 和自定义密码的热点.
请注意,setWifiApEnabled Android O中不再支持此功能,这是在旧版Android中完成的.但是,我仍然需要以编程方式使用SSID和密码创建一个wifi热点.我无法弄清楚如何做到这一点.提前致谢!
谁关心...:
对于一个学校项目,我制作了一个储物柜,只要它可以连接到具有某些警告的无线网络,就可以解锁,因此需要以编程方式设置热点.
是否可以通过Wi-Fi连接两部Android手机,而无需使用蓝牙/ GSM/CDMA/IR?此外,没有任何笔记本电脑或Wi-Fi接入点或Wi-Fi路由器.
我认为,可以在两部手机上创建一些SSID,进行静态配置IP地址.android会连接到另一个的Android wi-fi吗?
如果它们将被连接,我如何将文件从一部手机发送到第二部?有ftp客户端和服务器吗?或者我可以ssh到其他手机?还是telnel/netcat?也许http?
android ×10
android-wifi ×10
java ×3
bluetooth ×2
wifi ×2
android-x86 ×1
connectivity ×1
hotspot ×1
listview ×1
mockito ×1
ssid ×1
wifimanager ×1