- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在 Oreo AOSP 中开发一个简单的系统应用程序,以使用预定义的 SSID 和预共享 key 打开 wifi 热点。
因为我的应用程序是作为系统应用程序构建的,所以我不需要反射。
主 Activity .java
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
boolean result = false;
WifiManager mwifiManager;
mwifiManager = (WifiManager) getApplicationContext().getSystemService(WIFI_SERVICE);
try {
Method method = mwifiManager.getClass().getMethod("getWifiApConfiguration");
WifiConfiguration netconfig = (WifiConfiguration) method.invoke(mwifiManager);
netconfig.SSID = "DummyApp";
netconfig.preSharedKey = "1234567890";
netconfig.allowedKeyManagement.set(4);
mwifiManager.setWifiEnabled(false);
method = mwifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
result = (boolean) method.invoke(mwifiManager, netconfig, true);
if (!result) {
Toast.makeText(this, "Hotspot creation failed", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(this, "Wifi Enabled", Toast.LENGTH_SHORT).show();
}
} catch (Exception e) {
e.printStackTrace();
}
finish();
}
@Override
protected void onResume() {
super.onResume();
}
}
AndroidManifest.xml
android:protectionLevel="signature|privileged"
android:sharedUserId="android.uid.system">
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<!-- for wifi -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
<uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.TETHER_PRIVILEGED" />
Wifi 应该打开但得到以下结果:
Toast 消息:热点创建失败
Logcat:WifiManager:PACKAGE_NAME 已尝试调用 setWifiApEnabled:enabled = true
更新 1:How to turn on/off wifi hotspot programmatically in Android 8.0 (Oreo)
我已经尝试过上述更改。它将在本地打开热点,但没有自定义 SSID 和密码。
更新 2:从@Mr.AF 获得输入后。
Method setConfigMethod = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
......code snip.........
netconfig.allowedKeyManagement.set(4);
Method Method = mWifiManager.getClass().getMethod("setWifiApConfiguration", WifiConfiguration.class);
HOTSPOT 创建失败
最佳答案
在 Android Nougat 和以下代码中打开可移植热点。
Method method = mwifiManager.getClass().getMethod("getWifiApConfiguration");
WifiConfiguration netconfig = (WifiConfiguration) method.invoke(mwifiManager);
method = mwifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
result = (boolean) method.invoke(mwifiManager, netconfig, true);
以上 API 在 Oreo 中已弃用。
下面是oreo中@system隐藏的API,如果android应用程序是作为系统应用程序构建的,那么只能访问下面的API代码。就我而言,我可以使用以下 API。
ConnectivityManager oncm = (ConnectivityManager)ontext.getSystemService(Context.CONNECTIVITY_SERVICE);
oncm.startTethering(ConnectivityManager.TETHERING_WIFI, true, new ConnectivityManager.OnStartTetheringCallback() {
@Override
public void onTetheringStarted() {
super.onTetheringStarted();
Log.i(TAG, "Hotspot is successfully opened");
}
@Override
public void onTetheringFailed() {
super.onTetheringFailed();
Log.e(TAG, "Hotspot failed to open");
}
});
关于java - 奥利奥 Wifi 热点创建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55567416/
以下代码在 Java8 上的性能比较是违反直觉的。 import java.util.Arrays; class Main { interface Dgemv { void d
我正在使用 perfino 的评估版本,并且能够使用代理启动我的 java 应用程序。 服务器能够显示虚拟机的基本遥测,例如使用堆,CPU。 但是,我在“VM Data Views”->“Transa
我可以将 css 样式应用于 Dreamweaver 热点吗?我的意思是更改背景颜色、大小、字体大小等...谢谢 最佳答案 至少根据我的经验,热点只是您在图像上定义的可点击区域。在 HTML 中,他们
我只想在客户请求的情况下避免热点。我应该考虑什么标准?一些论文以 500 QPS(阅读)定义了这个阈值,但我想要一些基于真实场景中某些指标的东西。在我的例子中,当客户端请求在主节点上达到阈值时,我将
目前,我可以从 raspberry (raspbian) 连接到我的家庭 wifi,但当我尝试连接到 iphone (4s) 热点时却无法连接。 Iphone 是 WPA2 Personal,而我的家
我需要启用上面的图像,以便可以单击 3 个部分。 我想将其保留为图像,并且我假设我需要将热点与 jquery(我首选的动态语言 jquery)结合使用。 谁能用这个给我指明正确的方向。 谢谢 最佳答案
对于心理学研究元素,我们必须在质量调查中使用“热点”问题类型。当我们点击定义的区域时,有两种默认颜色:绿色(喜欢)和红色(不喜欢)。 我们希望有可能更改这些默认颜色(例如,黑色(喜欢)和蓝色(不喜欢)
我的问题是,在从一个 wifi 点/基站切换到另一个时,显着变化的位置服务是否可以更新位置? 我知道它适用于 radio 塔。 最佳答案 因为我回答错了,所以我删除了我的答案。 由于我没有足够的要点来
我正在尝试将 DH key 大小从 1024 位增加到 2048 位,按照这个问题:How to expand DH key size to 2048 in java 8 . 然而,它似乎不起作用。相
在 Hotspot 中关于 JIT 的讲座中,我想尽可能多地举例说明 JIT 执行的特定优化。 我只知道“方法内联”,但应该知道更多。为每个示例投票。 最佳答案 好吧,您应该浏览 Brian Goet
我想为光标使用自定义图像。 这很好,但据我所知 - 原点(箭头尖端)默认位于图像的左上角。 如何将原点设置为图像的中心。 这是一个演示问题的演示片段 div { width: 600px; h
有没有办法在iOS中检测是否启用了wifi热点? 我可以通过查看iphone ip格式为172.20.10.x或者状态栏颜色和高度的变化来检测是否有活跃的热点连接 但是简单地启用热点-检查这个条件是有
我有一个 iOS 应用程序,它通过 XMLRPC 连接到 Django 服务器(协议(protocol)并不重要)。身份验证使用标准 cookie 持久保存,并由 AFNetworking 通过 NS
我有一个原型(prototype) Android 应用程序,它正在监听多播数据包以“发现”要与之通信的客户端。套接字设置与此类似: InetAddress group = InetAddress.g
我需要帮助创建一个在热点模式下设置 android WiFi 的 C# 脚本。这是我设法创建的代码。 public bool setAPEnabled(bool enabled) {
我有一个作为接入点(又名 wifi 热点)运行的 android 设备,它正在运行以下代码: serverSocket = new ServerSocket(serverPort);
我想将硬件设备连接到 android 热点。我的应用程序将设置热点并检测连接的设备。 我已经尝试使用 SDK 21 提供的 p2p 示例,但是当启用热点时,WIFI_P2P_STATE_ENABLED
我有一个用 Java 编写的 Android 程序,它使用 Wifi 热点,目前我必须打开它并手动进行设置。 我希望通过程序内部的设置打开热点。 我看过一些与此相关的帖子,有些人有答案,但似乎不太清楚
我有两个 Android 设备 - 一个是服务器,第二个是客户端。我在服务器上运行 WiFi 热点(使用一些外部应用程序,例如 QuickSettings ),然后在第二台设备上连接到该热点。我有一个
我想知道使用与用于编译的 JDK 相同的 JRE 是否重要。 例如,我使用 OpenJ9(v12) 进行编译,然后使用 Hotspot(v12) 运行我的服务器。 会出现什么样的问题?性能怎么样? 我
我是一名优秀的程序员,十分优秀!