簡體   English   中英

wifi p2p中的頻道

[英]channels in wifi p2p

我正在嘗試在android中使用wifi p2p,我正在嘗試使用以下android proyect: wifiDirectDemo ,但是當我運行android應用時,請向我顯示此消息:

不幸的是,com.example.ferch.chupipandiparty已停止

我正在調試,當代碼到達我在活動中創建通道的行時,問題開始了:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.conexion_p2p);

    intentFilter.addAction(WifiP2pManager.WIFI_P2P_STATE_CHANGED_ACTION);
    intentFilter.addAction(WifiP2pManager.WIFI_P2P_PEERS_CHANGED_ACTION);
    intentFilter.addAction(WifiP2pManager.WIFI_P2P_CONNECTION_CHANGED_ACTION);
    intentFilter.addAction(WifiP2pManager.WIFI_P2P_THIS_DEVICE_CHANGED_ACTION);
    manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
    channel = manager.initialize(this, getMainLooper(), null);

}

該應用程序在Parcel.java類中引發異常:

public final void writeException(Exception e) {
    int code = 0;
    if (e instanceof SecurityException) {
        code = EX_SECURITY;
    } else if (e instanceof BadParcelableException) {
        code = EX_BAD_PARCELABLE;
    } else if (e instanceof IllegalArgumentException) {
        code = EX_ILLEGAL_ARGUMENT;
    } else if (e instanceof NullPointerException) {
        code = EX_NULL_POINTER;
    } else if (e instanceof IllegalStateException) {
        code = EX_ILLEGAL_STATE;
    } else if (e instanceof NetworkOnMainThreadException) {
        code = EX_NETWORK_MAIN_THREAD;
    } else if (e instanceof UnsupportedOperationException) {
        code = EX_UNSUPPORTED_OPERATION;
    }
    writeInt(code);
    StrictMode.clearGatheredViolations();
    if (code == 0) {
        if (e instanceof RuntimeException) {
            throw (RuntimeException) e;
        }
        throw new RuntimeException(e);
    }
    writeString(e.getMessage());
}

我已經在Manifest.xml中設置了此權限:

<uses-permission
        android:name="android.permission.ACCESS_WIFI_STATE"
        android:required="true" />
    <uses-permission
        android:name="android.permission.CHANGE_WIFI_STATE"
        android:required="true" />
    <uses-permission
        android:name="android.permission.INTERNET"
        android:required="true" />

日志貓:

12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty D/AndroidRuntime: Shutting down VM
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime: FATAL EXCEPTION: main
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime: Process: com.example.ferch.chupipadiparty, PID: 21442
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ferch.chupipadiparty/com.example.ferch.chupipadiparty.conexionP2P}: java.lang.SecurityException: WifiP2pService: Neither user 10115 nor current process has android.permission.ACCESS_WIFI_STATE.
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2358)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.app.ActivityThread.access$900(ActivityThread.java:154)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:135)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5294)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:  Caused by: java.lang.SecurityException: WifiP2pService: Neither user 10115 nor current process has android.permission.ACCESS_WIFI_STATE.
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.os.Parcel.readException(Parcel.java:1546)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.os.Parcel.readException(Parcel.java:1499)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.net.wifi.p2p.IWifiP2pManager$Stub$Proxy.getMessenger(IWifiP2pManager.java:113)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.net.wifi.p2p.WifiP2pManager.getMessenger(WifiP2pManager.java:1379)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.net.wifi.p2p.WifiP2pManager.initialize(WifiP2pManager.java:886)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at com.example.ferch.chupipadiparty.conexionP2P.onCreate(conexionP2P.java:49)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.app.Activity.performCreate(Activity.java:5990)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420) 
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.app.ActivityThread.access$900(ActivityThread.java:154) 
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) 
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:102) 
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:135) 
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5294) 
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Native Method) 
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:372) 
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) 
12-01 20:50:33.943 21442-21442/com.example.ferch.chupipadiparty E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699) 

我正在做為google wifiDirect的代碼

確保在拋出錯誤之前進行了此操作

ContextCompat.checkSelfPermission(thisActivity,Manifest.permission.ACCESS_WIFI_STATE)

看來是權限問題。 您的stacktrace清楚地表明了這一點:

用戶10115或當前進程都沒有android.permission.ACCESS_WIFI_STATE

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM