我需要在Android 2.2(Froyo)中创建一个API调用来创建一个Wifi热点(如Tethering和Portable Hotspot设置项中所示).
在我的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热点.我无法弄清楚如何做到这一点.提前致谢!
谁关心...:
对于一个学校项目,我制作了一个储物柜,只要它可以连接到具有某些警告的无线网络,就可以解锁,因此需要以编程方式设置热点.
我知道如何使用以下方法在android中使用反射打开/关闭wifi热点.
private static boolean changeWifiHotspotState(Context context,boolean enable) {
try {
WifiManager manager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
Method method = manager.getClass().getDeclaredMethod("setWifiApEnabled", WifiConfiguration.class,
Boolean.TYPE);
method.setAccessible(true);
WifiConfiguration configuration = enable ? getWifiApConfiguration(manager) : null;
boolean isSuccess = (Boolean) method.invoke(manager, configuration, enable);
return isSuccess;
} catch (Exception e) {
e.printStackTrace();
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
但上面的方法不适用于Android 8.0(Oreo).
当我在Android 8.0中执行上面的方法时,我在logcat中得到以下语句.
com.gck.dummy W/WifiManager: com.gck.dummy attempted call to setWifiApEnabled: enabled = true
Run Code Online (Sandbox Code Playgroud)
在Android 8.0上有没有其他方法来开/关热点
OpenJDK VM和Oracle Hotspot VM还有两种不同的JVM吗?
我似乎无法找到任何有关OpenJDK VM的官方文档.即使在OpenJDK主页上也有一个开发HotSpot VM的HotSpot Group.
HotSpot组由参与HotSpot虚拟机的设计,实现和维护的开发人员组成
但是如果我在我的Windows机器上检查java -version它会打印出来
Java HotSpot(TM)64位服务器VM
但在我的Ubuntu VPS上
OpenJDK 64位服务器VM
如果这两个是不同的VM,它们之间的主要区别是什么?他们有不同的运行时标志集吗?
(注意:正确答案必须超越复制).
在数百万次调用之后,quicksort1肯定比quicksort2更快,除了这个额外的arg之外,它们具有相同的代码.
代码在帖子的末尾.Spoiler:我还发现jit代码比224字节更胖,即使它实际上应该更简单(如字节代码大小告诉;请参阅下面的最后更新).
即使试图用一些微基准线束(JMH)来解决这种影响,性能差异仍然存在.
我在问:为什么生成的本机代码存在这样的差异,它在做什么?
通过向方法添加参数,它使它更快......!我知道gc/jit/warmup/etc效果.您可以按原样运行代码,也可以使用更大/更小的迭代计数.实际上,你甚至应该注释掉一个然后另一个性能测试并在不同的jvm实例中运行它们,只是为了证明它不是彼此之间的干扰.
字节码没有显示出太大的区别,除了明显的getstatic为sleft/sright,还有一个奇怪的'iload 4'而不是"iload_3"(和istore 4/istore_3)
到底他妈发生了什么?iload_3/istore_3真的比iload 4/istore 4慢吗?即使添加的getstatic调用仍然没有让它变慢,那要慢得多?我猜测静态字段是未使用的,因此jit可能只是跳过它.
无论如何,我的方面没有任何歧义,因为它总是可重复的,我正在寻找解释为什么javac/jit做了他们所做的,以及为什么性能受到如此大的影响.这些是相同的递归算法,具有相同的数据,相同的内存流失等等...如果我愿意,我无法进行更加孤立的更改,以显示可重复的运行时差异.
ENV:
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)
(also tried and reproduced on java9)
on a 4 core i5 laptop 8GB ram.
windows 10 with the meltdown/specter patch.
Run Code Online (Sandbox Code Playgroud)
使用-verbose:gc -XX:+ PrintCompilation,没有gc和jit编译在C2(第4层)中已经稳定.
n = 20000时:
main]: qs1: 1561.3336199999999 ms (res=null)
main]: qs2: 1749.748416 ms (res=null)
main]: qs1: 1422.0767509999998 ms (res=null)
main]: qs2: 1700.4858689999999 ms (res=null)
main]: qs1: …
Run Code Online (Sandbox Code Playgroud) 我在一个应用程序上编码,用户可以观看各种各样的视频.我在按钮点击时全屏打开视频,用户可以使用播放控件来调整窗口大小.我遇到的问题是当用户通过热点共享他的互联网时,应用程序顶部有一个蓝色条.此时调整窗口大小会导致AVKit框架崩溃(我相信).使用Swift 2.3,Xcode 7.3.1.我的手机,iPhone 6s,使用iOS 10,我也尝试过iOS 9 iPhone 6 Plus,同样的问题.
碰撞:
Terminating app due to uncaught exception 'UIViewControllerHierarchyInconsistency', reason: 'child view controller:<AVFullScreenPlaybackControlsViewController: 0x102933000> should have parent view controller:<AVPlayerViewController: 0x10212d800> but actual parent is:<AVFullScreenViewController: 0x10884d900>'
Run Code Online (Sandbox Code Playgroud)
我的代码:
private let playerController = AVPlayerViewController()
private var player: AVPlayer!
private func playVideo(media: Media) {
player = AVPlayer(URL: NSURL(string: media.url)!)
playerController.player = player
presentViewController(playerController, animated: true, completion: {
self.playerController.player?.play()
self.playerController.delegate = self
})
}
Run Code Online (Sandbox Code Playgroud)
如果我不在我的手机上共享我的互联网(因此没有蓝色条),那么它工作正常,没有任何问题.有人设法隐藏这个蓝色条,或遇到类似的问题?
我控制着作为热点的 IOT 设备的 http 服务器。此设备 http 服务器提供一些设置,但不提供 Internet 连接。
当我从 Ubuntu PC 连接到此设备时,Ubuntu 会弹出一个“热点登录”窗口。当您在机场同意条款并访问互联网时,这“很有用”。以下是在 Google 上找到的此类窗口的示例:
此功能由 Gnome NetworkManager 控制。我知道如何禁用它,但这不是我问题的重点。
我的问题是如何处理设备 http 服务器上的情况,基本上告诉任何网络守护进程(Linux、Windows 或 Mac):“没有互联网连接,不要尝试,不要用登录页面打扰您的用户,这没有道理……”?
是否有官方的 rfc 规范来处理热点自动登录页面?
我想获得Wifi热点范围内所有设备(打开wifi的设备)的列表.但是它可能连接也可能没有连接到热点.我通过使用这个库获取连接设备的列表,但我不确定是否可以获得未连接到wifi热点的设备,并且只是在其范围内.如果有人可以澄清它的可能性,那将是非常好的.谢谢.
众所周知,由于 Android Oreo (API 26) 无法像以前的版本那样使用 setApEnable() 启用 wifi 热点。
Google 已经隐藏并保护了这些方法,唯一的可能性是使用 WifiManager.startLocalOnlyHotspot 启用本地唯一热点,如下所述:
对于我的项目,我需要热点功能来与另一台设备通信,不需要互联网,但是,我需要使用其他设备上预配置的一些特定凭据创建热点。
我已经检查了 android 文档,但我不知道是否可以使用预定义的参数、SSID 和 PASSWORD 执行 startLocalOnlyHotspot。
有谁知道是否可以配置它们?
谢谢!
我正在 React-Native 上开发一款游戏,可以完全离线运行,无需互联网连接,
该游戏将是多人 1vs1 游戏,玩家将通过 Wifi 热点(也称为 wifi Direct)加入该游戏还允许用户互相聊天
而这一切都应该在没有互联网的情况下通过使用 wifi 来完成。
我尝试过“React-Native-Wifi-Hotspot”,但没有关于如何发送和接收数据的文档
我想通过 2 个连接的设备之间的 WiFi 热点发送和接收对象/数组。对等
我还阅读了有关react-native-wifi-p2p库的内容,但它的文档说我们需要本地服务器或我真的不确定如何做到这一点的东西。
hotspot ×10
android ×6
java ×4
android-wifi ×2
jvm-hotspot ×2
avplayer ×1
bytecode ×1
ios ×1
jit ×1
jvm ×1
networking ×1
openjdk ×1
react-native ×1
swift ×1
wifi ×1
wifi-direct ×1
wifimanager ×1