2014-02-28 4 views
0

Wi-Fi Direct API를 사용하여 응용 프로그램을 만들려고합니다. 난 2 개 클래스 코드 울부 짖는 소리를 사용하고 'Wi-Fi Direct API를 사용하여 응용 프로그램을 테스트하는 방법

1 클래스 와이파이 다이렉트 :


package com.example.wifi_direct; 

import android.net.wifi.p2p.WifiP2pManager; 
import android.net.wifi.p2p.WifiP2pManager.Channel; 
import android.os.Bundle; 
import android.app.Activity; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.IntentFilter; 
import android.view.Menu; 

public class WifiDirect extends Activity { 


    WifiP2pManager mManager; 
    Channel mChannel; 
    BroadcastReceiver mReceiver; 

    IntentFilter mIntentFilter; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     //To register the BroadastReceiver 
     mManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE); 
     mChannel = (Channel) mManager.initialize(this, getMainLooper(), null); //It was necessary to make a cast (Channel) 
     mReceiver = new WiFiBroadcastReceiver(mManager, mChannel, this, this); 


     //To define the filter in the BroadcastReceiver 
     mIntentFilter = new IntentFilter(); 
     mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION); 
     mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION); 
     mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION); 
     mIntentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION); 


    } 


    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.main, menu); 
     return true; 
    } 

    // 


    @Override 
    protected void onResume() { 
     super.onResume(); 
     registerReceiver(mReceiver, mIntentFilter); 
    } 

    // unregister the broadcast receiver 
    @Override 
    protected void onPause() { 
     super.onPause(); 
     unregisterReceiver(mReceiver); 
    } 

} 

2 - 클래스 WiFiBroadcastReceiver :


package com.example.wifi_direct; 


import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.net.wifi.p2p.WifiP2pManager; 
import android.net.wifi.p2p.WifiP2pManager.Channel; 
import android.widget.Toast; 



/** 
* A BroadcastReceiver that notifies of important Wi-Fi p2p events. 
*/ 

public class WiFiBroadcastReceiver extends BroadcastReceiver { 

    private WifiP2pManager manager; 
    private Channel channel; 
    private WifiDirect activity; 
    //For toast, add also context 
    private Context context; 

    public WiFiBroadcastReceiver(WifiP2pManager manager, Channel channel, WifiDirect activity, Context context) { 
     super(); 
     this.manager = manager; 
     this.channel = channel; 
     this.activity = activity; 
     this.context= context; 
    } 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     String action = intent.getAction(); 


     if (WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION.equals(action)) { 

      // Check to see if Wi-Fi is enabled and notify appropriate activity 
      int state = intent.getIntExtra(WifiP2pManager.EXTRA_WIFI_STATE, -1); 
      if (state == WifiP2pManager.WIFI_P2P_STATE_ENABLED) { 

       Toast.makeText(context, "Wi-Fi Direct is enable", Toast.LENGTH_LONG).show(); 
       System.out.print("ddddddddddddddd"); 

      } else { 
       System.out.print("ddddvvvvvvvdddd"); 
       Toast.makeText(context, "Wi-Fi Direct is not enable", Toast.LENGTH_LONG).show(); 
      }  

     } else if (WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION.equals(action)) { 
      // Call WifiP2pManager.requestPeers() to get a list of current peers 
     } else if (WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION.equals(action)) { 
      // Respond to new connection or disconnections 
     } else if (WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION.equals(action)) { 
      // Respond to this device's wifi state changing 
     } 
    } 
} 

i'am 초보자가이 API를 사용하고 Wi-Fi가 사용되는지 여부를 테스트하는 방법을 알고 싶습니다. (Wi-Fi가 작동하는지 또는하지 않는지 확인하려면 내 활동에서 무엇을해야합니까) 고마워.

답변

0

무선 랜이 방법

WifiManager 와이파이 = (WifiManager) getSystemService (Context.WIFI_SERVICE)에 의해인지 아닌지 확인할 수있다;

(wifi.isWifiEnabled은())

{

// 와이파이가

을 활성화} 말아야 할 권한을

이 깜빡이 경우

사용 - 권한 안드로이드 : 이름 = "안드로이드 .permission.ACCESS_WIFI_STATE "

0

코드가 불완전합니다. 그래서, 옵션은 자신의 전체 코드하기 위해 다음 단계를 수행하는 것입니다

  1. 안드로이드 SDK 관리자를
  2. 다운로드 샘플 안드로이드 4.2.2 (API 17) (이미 설치된 경우)
  3. 에 대한 C에
  4. 이동 : 샘플 \ 안드로이드-SDK-WINDOWS \ \ 안드로이드-SDK-창 \ \ WiFiDirectDemo 17 안드로이드 또는 SDK 모든 파일을 복사하여 데모를 만들 지금

을의 위치 일식에 하나. project.properties을 포함하지 않으므로 기능 코드가 아니기 때문에이 코드를 직접 가져올 수 없습니다.

새내기에 가장 좋은 모든 것 ....