2015-10-19 9 views
0

Я видел код Here. как работает public void displayPeers (конечные точки WifiP2pDeviceList). Когда я запускаю устройство, он отображается в устройствах в списке, но как он получает список устройств без метода initializ ie. displaypeers() без вызова?Wifip2p обнаружить сверстников не работает

После этого я изменил код для своего проекта, метод Displaypeers не работает/вызывает. но когда я импортирую его в полный проект, он работает. Как это работает? пожалуйста помогите . Если я ошибался, может ли кто-нибудь сказать мне, как назвать этот метод? Дисплееры (конечные точки WifiP2pDeviseList) в самой функции oncreate. Спасибо. Извините за мой плохой английский.

public void searchForPeers(View view) { 

    //Discover peers, no call back method given 
    wifiManager.discoverPeers(wifichannel, null); 

} 

.... ....

public void displayPeers(final WifiP2pDeviceList peers) 
{ 
    //Dialog to show errors/status 
    final AlertDialog.Builder dialog = new AlertDialog.Builder(this); 
    dialog.setTitle("WiFi Direct File Transfer"); 

    //Get list view 
    ListView peerView = (ListView) findViewById(R.id.peers_listview); 

    //Make array list 
    ArrayList<String> peersStringArrayList = new ArrayList<String>(); 

    //Fill array list with strings of peer names 
    for(WifiP2pDevice wd : peers.getDeviceList()) 
    { 
     peersStringArrayList.add(wd.deviceName); 
    } 

    //Set list view as clickable 
    peerView.setClickable(true); 

    //Make adapter to connect peer data to list view 
    ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, peersStringArrayList.toArray());     

    //Show peer data in listview 
    peerView.setAdapter(arrayAdapter); 


    peerView.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> arg0, View view, int arg2,long arg3) { 

      //Get string from textview 
      TextView tv = (TextView) view; 

      WifiP2pDevice device = null; 

      //Search all known peers for matching name 
      for(WifiP2pDevice wd : peers.getDeviceList()) 
      { 
       if(wd.deviceName.equals(tv.getText())) 
        device = wd;       
      } 

      if(device != null) 
      { 
       //Connect to selected peer 
       connectToPeer(device); 

      } 
      else 
      { 
       dialog.setMessage("Failed"); 
       dialog.show(); 

      }       
     }   
      // TODO Auto-generated method stub    
     }); 

} 

EDIT: OnCreate метод

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_client); 
    // getActionBar().setDisplayHomeAsUpEnabled(true); 

    wifiManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE); 

    wifichannel = wifiManager.initialize(this, getMainLooper(), null); 
    wifiClientReceiver = new WiFiClientBroadcastReceiver(wifiManager, wifichannel, this); 

    wifiClientReceiverIntentFilter = new IntentFilter(); 
    wifiClientReceiverIntentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION); 
    wifiClientReceiverIntentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION); 
    wifiClientReceiverIntentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION); 
    wifiClientReceiverIntentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION); 
    connectedAndReadyToSendFile = false; 
    filePathProvided = false; 
    fileToSend = null; 
    transferActive = false; 
    clientServiceIntent = null; 
    targetDevice = null; 
    wifiInfo = null; 

    registerReceiver(wifiClientReceiver, wifiClientReceiverIntentFilter); 

    setClientFileTransferStatus("Client is currently idle"); 

    //setTargetFileStatus("testing"); 
} 
+0

Вы можете разместить свой метод OnCreate(), а? – iheanyi

+0

@iheanyi для ур info я добавил oncreate ... –

ответ

0

Вы должны смотреть на весь проект. Есть больше классов, чем просто ClientActivity. Все они взаимодействуют, чтобы сформировать рабочее приложение.

displayPeers() вызывается из WiFiClientBroadcastReceiver. Я предлагаю вам просмотреть все файлы здесь:

https://github.com/mayfourth/WiFi-Direct-File-Transfer/tree/master/WiFiDirectFileTransfer/src/edu/pdx/cs410/wifi/direct/file/transfer

 Смежные вопросы

  • Нет связанных вопросов^_^