标签: android-wifi

如何通过Android上的Wi-Fi热点以编程方式启动本地网络连接?

我想使用Android设备上的内置Wi-Fi热点启动本地网络连接.有办法实现吗?以及如何在两个设备之间进行通信?

编辑:我想以编程方式进行.然后我可以在设备之间传输我自己的数据.

android local-network android-wifi

13
推荐指数
1
解决办法
9054
查看次数

在manifest中声明的BroadcastReceiver没有接收广播

我试图注册一个Wifi BroadcastReceiver,以便在它发生变化时获得wifi状态.但到目前为止,我没有收到广播的好运.

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <receiver android:name=".WifiReceiver" >
        <intent-filter>
            <action android:name="android.net.wifi.WifiManager.WIFI_STATE_CHANGED_ACTION" />
            <action android:name="android.intent.action.PHONE_STATE" />
        </intent-filter>
    </receiver>

    //activity declaration here...

</application>
Run Code Online (Sandbox Code Playgroud)

你们知道如何在清单中注册BraodcastReceiver吗?

我不想在活动中注册它,因为我想在wifi状态发生变化时监视wifi,无论我的应用程序是否正在运行.

这是我的BroadcastReceiver类:

public class WifiReceiver extends BroadcastReceiver {
    private final String TAG = "WifiReceiver";

    @Override
    public void onReceive(Context context, Intent intent) {
        int wifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE, WifiManager.WIFI_STATE_UNKNOWN);
        String wifiStateText = "No State";

        switch (wifiState) {
        case WifiManager.WIFI_STATE_DISABLING:
            wifiStateText = "WIFI_STATE_DISABLING";
            break;
        case WifiManager.WIFI_STATE_DISABLED:
            wifiStateText = "WIFI_STATE_DISABLED";
            break;
        case WifiManager.WIFI_STATE_ENABLING:
            wifiStateText = "WIFI_STATE_ENABLING";
            break;
        case …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-wifi

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

以编程方式获取wifi /移动网络的数据速度

如何在我的应用程序中以编程方式获取wifi /移动网络的数据速度.

mobile networking android android-wifi

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

如何在android中分别找到特定应用程序的wifi和网络数据使用情况?

recived = TrafficStats.getUidRxBytes(uid);
send = TrafficStats.getUidTxBytes(uid);

TrafficStats.getMobileRxBytes(); 
TrafficStats.getMobileTxBytes(); 

TrafficStats.getTotalRxBytes();
TrafficStats.getTotalTxBytes();
Run Code Online (Sandbox Code Playgroud)

我有应用程序ID,我可以获得该应用程序数据使用,但我无法获得更详细的信息,如使用wifi和网络的数据使用.我想在设备中单独找到所有已安装的应用程序.我怎么能找到那个.?我已经尝试了很多东西,但没有得到任何解决方案.

android android-networking android-wifi

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

禁用三星"自动网络交换机"进行WiFi连接

在我们的应用程序中,我们处理启动到设备的WiFi连接,该设备广播其自己的无线接入点(没有互联网连接)以进行直接通信.

它在我们所有的测试设备上都能很好地工作; 然而,我们收到用户的报告,在某些三星设备(Galaxy S4,Galaxy Note 3)上,在Wi-Fi设置下有一个名为"自动网络交换机"的设置,三星已经添加了这个设置,寻找"不稳定"的网络,以及将自动断开连接并恢复为移动数据.不幸的是,由于我们的设备没有互联网连接,三星将其报告为不稳定的网络并立即断开连接.

我没有这些设备可用于测试,所以我很好奇是否有其他人知道这个问题或知道如何以编程方式禁用此设置或解决它?

我们用于连接的代码是:

/**
 * Attempt to connect to an open wifi network with the given SSID
 * @param ssid the SSID of the unsecured wireless network to connect to
 */
public static void connectToOpenNetwork (String ssid) {
    WifiManager mgr = getManager();
    WifiConfiguration configuration = getOpenWifiConfiguration(ssid);
    mgr.addNetwork(configuration);
    mgr.saveConfiguration();

    int res = findOpenNetworkId(ssid);
    if (res != INVALID_NETWORK_ID) {
        mgr.enableNetwork(res, true);
        mgr.reconnect();
    } else {
        Log.e(TAG, "Received request to connect to network " + ssid + " …
Run Code Online (Sandbox Code Playgroud)

networking android wifi android-wifi samsung-mobile

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

WifiConfiguration在Lollipop中启用网络

我正在研究Wifi项目,有一个模块可以让用户以编程方式加入wifi.

在kitkat及以下它的工作成功,但在Lollipop它没有工作.

这是代码:

WifiManager wifiManager = (WifiManager) getSystemService(Context.WIFI_SERVICE);
WifiConfiguration wifiConfiguration = new WifiConfiguration();
wifiConfiguration.SSID = "\"testSSID\"";
wifiConfiguration.hiddenSSID = true;
wifiConfiguration.status = WifiConfiguration.Status.ENABLED;
wifiConfiguration.allowedKeyManagement
.set(WifiConfiguration.KeyMgmt.NONE);
netId = wifiManager.addNetwork(wifiConfiguration);
Log.d("WifiPreference", "add Network returned " + netId);
boolean checkEnableWifi = wifiManager.enableNetwork(netId, true);
Log.d("WifiPreference", "enableNetwork returned " + checkEnableWifi);
Run Code Online (Sandbox Code Playgroud)

我的测试设备是nexus 5内部版本编号LRX21O,我的代码或Lollipop上的bug有问题吗?

android android-wifi android-5.0-lollipop

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

Android上没有互联网的强制门户网站

美好的一天.我需要WiFi热点上的Captive Portal,它可以在没有互联网的情况下工作,并弹出通知或自动打开登录页面.我正在使用Mikrotik和RouterOS 6.27.我创建了热点,然后在DNS中添加了一个RegExp

.*= HOTSPOT_IP_ADDRESS

它在Windows和iOS中运行良好,因为它们的强制门户检测基于获取某些网站的响应.Afaik - 任何回应.但对于Android,它必须是一些特殊的响应,空的内容或状态代码204 - 我仍然不确定.

我试图模仿谷歌页面给出204或空响应并使用此模拟页面重定向到我的服务器,但它没有帮助Android显示通知.

所以我需要帮助才能在没有互联网的情况下在Android中进行强制门户通知

谢谢.

wifi android-wifi mikrotik

13
推荐指数
0
解决办法
2971
查看次数

为什么我从手机到计算机网络的访问不起作用?

我有一个问题,就是昨天,我可以从我的手机访问我的计算机网络,但今天它无法正常工作.为什么会这样?

我准备好了:

  1. 我已经运行与XAMPP(我开始了我的本地服务器ApacheMySQL).
  2. 我通过WIFI连接到同一个网络.
  3. 我的手机通过USB连接到电脑.
  4. 我去了CMD,复制了IP我的电脑并把它放在我的手机浏览器上,但它不起作用.
  5. 我尝试使用网址,10.0.2.2但它也无法正常工作.

为什么会这样?昨天它完美地将我的网址放在我的手机浏览器中,今天它不起作用.我昨天没有做任何改变.我忘记了什么吗?如何检查所有工作是否正确?

注意:我看到很多问题都提出同样的问题,但我无法解决他们的问题.

提前致谢!

编辑:我在日志控制台中看到了一个问题.它在这里的日志:

06-04 16:49:21.527  17600-17600/com.example.user.project V/PhoneWindow? DecorView setVisiblity: visibility = 0 ,Parent =ViewRoot{420a1478 com.example.user.project/com.example.user.project.MainActivity,ident = 0}, this =com.android.internal.policy.impl.PhoneWindow$DecorView{4205a608 V.E..... R.....ID 0,0-0,0}
06-04 16:49:21.527  17600-17600/com.example.user.project D/ActivityThread? ACT-LAUNCH_ACTIVITY handled : 0 / ActivityRecord{4204b3c0 token=android.os.BinderProxy@4204aa68 {com.example.user.project/com.example.user.project.MainActivity}}
06-04 16:49:21.590  17600-17600/com.example.user.project E/? appName=com.example.user.project, acAppName=/system/bin/surfaceflinger
06-04 16:49:21.590  17600-17600/com.example.user.project E/? 0
06-04 16:49:21.590  17600-17600/com.example.user.project E/? appName=com.example.user.project, acAppName=/system/bin/surfaceflinger
06-04 16:49:21.590  17600-17600/com.example.user.project E/? 0
06-04 16:49:21.592  17600-17600/com.example.user.project D/GraphicBuffer? create …
Run Code Online (Sandbox Code Playgroud)

connection xampp mobile android android-wifi

13
推荐指数
1
解决办法
532
查看次数

如何使用NetworkRequest.Builder()指定wifi网络.setNetworkSpecifier(string)

我正在寻找一种让Android 5.0平板电脑连接到内部网的方法,出于安全考虑,该内部网没有互联网连接.

问题是谷歌自4.4/5.0以来在Android中构建的强制门户保护.对android connectivitycheck进行调用以检查互联网连接,当此呼叫失败时,wifi网络被标记为不工作并避免.很蹩脚.

其他人遇到了同样的问题,有些人建议使用android 5中引入的新API,请参阅: Android 5.0 Lollipop和4.4 KitKat忽略了我的WiFi网络,enableNetwork()无用

关于此的文件非常含糊:

NetworkRequest.Builder.setNetworkSpecifier(String  networkSpecifier)
Run Code Online (Sandbox Code Playgroud)

"对此字符串的解释是特定于承载的,使用它的承载者应记录其详细信息.例如,蓝牙可能使用某种设备ID,而WiFi可能使用ssid和/或bssid.蜂窝可能使用载波spn"

我试过这个并没有用.主要问题是,一旦我使用 setNetworkSpecifier()没有网络被发现.我尝试使用bssid(mac)和ssidAP.

看起来过滤器正在工作,但不清楚它应该如何工作.如果我省略了setNetworkSpecifier()呼叫1网络,但无法确定哪个.至少它显示我的代码有效.

那么如果ssid和bssid不起作用,我应该在这里放什么?

这是我的代码.

 private void connect(String ssid, Context context) {
    Log.i(TAG, "try connect to! " + ssid);
    ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        NetworkRequest nr = new NetworkRequest.Builder().addTransportType(NetworkCapabilities.TRANSPORT_WIFI).
                removeCapability(NetworkCapabilities.NET_CAPABILITY_TRUSTED).
                removeCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET

                setNetworkSpecifier(ssid). //<--- here is the problem
                build();
        ConnectivityManager.NetworkCallback callback 
             = new ConnectivityManager.NetworkCallback() {
                @Override
                public void onAvailable(Network network) {
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                        Log.i(TAG, "onAvailable …
Run Code Online (Sandbox Code Playgroud)

networking android android-wifi captiveportal

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

列出 Android Q / API 29 上的 WiFi 网络

我目前正在将我的应用程序迁移到 Android Q。我想列出所有已配置的 WiFi 网络,并且在 QI 能够使用WiFiManager 中的getConfiguredNetworks函数执行此操作之前。遗憾的是,此方法在 API 级别 29 上已弃用,并在 Android Q 设备上返回空列表。

弃用评论仅指我也想连接到这些网络的情况。我不想这样做,我只想列出带有名称的网络并获取其内部id. 你有什么想法我应该如何在 Q 中做到这一点吗?

android android-wifi android-10.0

13
推荐指数
1
解决办法
3781
查看次数