Как показать список всех возможных дисплеев для подключения (miracast)

Мне нужно показать список всех возможных дисплеев, и после этого выбрать один из них, чтобы соединиться с miracast. Вот мой код:

private Context context;
    private DisplayManager mDisplayManager;
    private WifiP2pManager wifiP2pManager;
    private ArrayList<WifiP2pDevice> devices;
    private WifiP2pManager.Channel channel;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ButterKnife.bind(this);
        context = this;

        devices = new ArrayList<WifiP2pDevice>();
        buttonScan.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startScan();
            }
        });


        mDisplayManager = (DisplayManager)this.getSystemService(Context.DISPLAY_SERVICE);


        wifiP2pManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
        channel  = wifiP2pManager.initialize(this, getMainLooper(), new WifiP2pManager.ChannelListener() {
            public void onChannelDisconnected() {
                channel = null;
                Logger.makeLog("onChannelDisconnected");
            }
        });


    }


    WifiP2pManager.PeerListListener myPeerListListener = new WifiP2pManager.PeerListListener() {
                @Override
                public void onPeersAvailable(WifiP2pDeviceList peerList) {

                    // Out with the old, in with the new.
                    devices.clear();
                    devices.addAll(peerList.getDeviceList());

                    Logger.makeLog("devices size " + devices.size());
                    Toast.makeText(context, "devices size " + devices.size(), Toast.LENGTH_LONG).show();

                    if (devices.size() == 0) {
                        Logger.makeLog("No devices found");
                        return;
                    }
                }

            };


    private void startScan() {
        wifiP2pManager.requestPeers(channel, myPeerListListener);
    }

После компиляции этого кода я нажимаю кнопку Scan, и он показывает, что в области отображается 0. Но один дисплей был рядом со мной. Но затем я подключился к дисплею (телевизору), зашел в свое приложение, нажал кнопку "Сканировать", и он показывает мне, что вокруг меня 2 дисплея (телевизор и дисплей мобильного телефона). Но это плохо, мне нужно сканировать все возможные дисплеи, чтобы подключиться ДО подключения... Итак, что я делаю не так?

0 ответов

Другие вопросы по тегам