Android — Показать уведомление с текстом для подключенных устройств WiFi

Если мобильное устройство подключается к открытой сети (маршрутизатору), система отображает уведомление, которое переходит в браузер для входа.

Точно так же можно ли отображать уведомление с настраиваемым текстом, который открывает браузер с URL-адресом намерения, когда устройство подключается к Wi-Fi (точка доступа Android Wi-Fi)?

Примечание:

на устройствах, подключающихся к Wi-Fi, нет моего приложения. Уведомление должно быть отправлено устройством Android, на котором размещена точка доступа Wi-Fi.


person Ravi Kumar    schedule 09.05.2017    source источник
comment
Я обновил вопрос с примечанием. пожалуйста, проверьте   -  person Ravi Kumar    schedule 10.05.2017


Ответы (2)


Теперь вы можете создать широкое изменение сети прослушивателя и вызвать одно намерение Проверить интернет-соединение INTENT

person Dungnbhut    schedule 10.05.2017
comment
Это сработает, если мое приложение находится на устройстве подключения Wi-Fi. Если моего приложения нет, то это не работает. - person Ravi Kumar; 10.05.2017

1) Вы можете использовать BroadcastReciever "android.net.wifi.WIFI_HOTSPOT_CLIENTS_CHANGED" для обнаружения подключения клиента.

В вашем AndroidManifest:

<receiver
    android:name=".WiFiConnectionReciever"
    android:enabled="true"
    android:exported="true" >
    <intent-filter>
        <action android:name="android.net.wifi.WIFI_HOTSPOT_CLIENTS_CHANGED" />
    </intent-filter>
</receiver>

И в действии:

IntentFilter mIntentFilter = new IntentFilter();
mIntentFilter.addAction("android.net.wifi.WIFI_HOTSPOT_CLIENTS_CHANGED");
rcv = new WiFiConnectionReciever();
registerReceiver(rcv,mIntentFilter);

2) Вы также можете получить список подключенных устройств к HOTSPOT

public void getConnectedClientList() {
    int clientcount = 0;
    BufferedReader br = null;
    try {
        br = new BufferedReader(new FileReader("/proc/net/arp"));
        String line;
        while ((line = br.readLine()) != null) {
            String[] splitted = line.split(" +");
                String mac = splitted[3];
                System.out.println("Mac : Outside If "+ mac );
                if (mac.matches("..:..:..:..:..:..")) {
                    clientcount++;
                    System.out.println("Mac : "+ mac + " IP Address : "+splitted[0] );
                    System.out.println("Client_count  " + clientcount + " MAC_ADDRESS  "+ mac);
                    Toast.makeText(
                            getApplicationContext(),
                            "Client_count  " + clientcount + "   MAC_ADDRESS  "
                                    + mac, Toast.LENGTH_SHORT).show();

                }
            }

    } catch(Exception e) {
    }
}
person Ratna deep verma    schedule 10.05.2017
comment
Моего приложения нет на подключенном Wi-Fi-устройстве, тогда как отправить уведомление с устройства, на котором размещен Wi-Fi? - person Ravi Kumar; 10.05.2017
comment
Вы можете проверить отредактированный ответ. Вы также можете пройти через класс Android Wifi Hotspot Manager, пример кода для сканирования /proc/net/arp и проверки связи с каждым известным клиентом для обнаружения средств к существованию. - person Ratna deep verma; 10.05.2017
comment
Спасибо за ваш ответ. Ваш код помогает получить IP-адрес устройства, подключенного к Wi-Fi. Но могу ли я показать уведомление с URL-адресом намерения на подключенных устройствах Wi-Fi? - person Ravi Kumar; 10.05.2017
comment
Вы не можете отправить уведомление на подключенные устройства Wi-Fi, потому что, если на них нет вашего приложения, вы не можете отправить уведомление на эти устройства. - person Ratna deep verma; 10.05.2017