Android 发现WiFi P2p设备并将其显示在碎片列表中

Android 发现WiFi P2p设备并将其显示在碎片列表中,android,permissions,wifi,p2p,discover,Android,Permissions,Wifi,P2p,Discover,我正在尝试发现WiFi P2p设备,并在稍后的片段列表中显示它们。问题是:它在安卓4.4.2上运行良好,但在安卓8.0.0(OnePlus 3,Oxygen OS 5.0.1)上却不行。我已经在XML中查询了必要的权限,并根据requestPerissions检查了它们。我看不到的问题在哪里 舱单: <?xml version="1.0" encoding="utf-8"?> 用于发现的类: package com.example.mcorp.wifi_service; impor

我正在尝试发现WiFi P2p设备,并在稍后的片段列表中显示它们。问题是:它在安卓4.4.2上运行良好,但在安卓8.0.0(OnePlus 3,Oxygen OS 5.0.1)上却不行。我已经在XML中查询了必要的权限,并根据requestPerissions检查了它们。我看不到的问题在哪里

舱单:

<?xml version="1.0" encoding="utf-8"?>
用于发现的类:

package com.example.mcorp.wifi_service;
import android.app.ListFragment;
import android.app.ProgressDialog;
import android.content.Context;

import android.content.DialogInterface;
import android.net.wifi.p2p.WifiP2pConfig;
import android.net.wifi.p2p.WifiP2pDevice;
import android.net.wifi.p2p.WifiP2pDeviceList;
import android.net.wifi.p2p.WifiP2pManager.PeerListListener;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;


public class DeviceListFragment extends ListFragment implements PeerListListener {




private List<WifiP2pDevice> peers = new ArrayList<WifiP2pDevice>();
ProgressDialog progressDialog = null;
View mContentView = null;
private WifiP2pDevice device;
public boolean device_choosen = false;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    this.setListAdapter(new WiFiPeerListAdapter(getActivity(), R.layout.row_devices, peers));

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    mContentView = inflater.inflate(R.layout.device_list, null);
    return mContentView;
}


public WifiP2pDevice getDevice() {
    return device;
}


private static String getDeviceStatus(int deviceStatus) {
    //Log.d(MainActivity.TAG, "Peer status :" + deviceStatus);
    switch (deviceStatus) {
        case WifiP2pDevice.AVAILABLE:
            return "Available";
        case WifiP2pDevice.INVITED:
            return "Invited";
        case WifiP2pDevice.CONNECTED:
            return "Connected";
        case WifiP2pDevice.FAILED:
            return "Failed";
        case WifiP2pDevice.UNAVAILABLE:
            return "Unavailable";
        default:
            return "Unknown";

    }
}


@Override //
public void onListItemClick(ListView l, View v, int position, long id) {
    WifiP2pDevice device = (WifiP2pDevice) getListAdapter().getItem(position);
    device_choosen = true;
    getActivity().findViewById(R.id.btn_server).setVisibility(View.VISIBLE);
    getActivity().findViewById(R.id.btn_client).setVisibility(View.VISIBLE);

    ((DeviceActionListener) getActivity()).showDetails(device);
    //getActivity() in a Fragment returns the Activity the Fragment is currently associated
}

/**
 * Array adapter for ListFragment that maintains WifiP2pDevice list.
 */
private class WiFiPeerListAdapter extends ArrayAdapter<WifiP2pDevice> {

    private List<WifiP2pDevice> items;

    public WiFiPeerListAdapter(Context context, int textViewResourceId, List<WifiP2pDevice> objects) {
        super(context, textViewResourceId, objects);
        items = objects;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        if (v == null) {
            LayoutInflater vi = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.row_devices, null);
        }
        WifiP2pDevice device = items.get(position); // Hier ausgewähltes Device drin
        if (device != null) {
            TextView tvDeviceName = (TextView) v.findViewById(R.id.tv_deviceName);
            TextView tvDeviceDetails = (TextView) v.findViewById(R.id.tv_deviceDetails);
            if (tvDeviceName != null) {
                tvDeviceName.setText(device.deviceName);
            }
            if (tvDeviceDetails != null) {
                tvDeviceDetails.setText(getDeviceStatus(device.status));
            }
        }
        return v;
    }
}

/**
 * Update UI for this device.
 */
public void updateThisDevice(WifiP2pDevice device) {
    this.device = device;
    TextView tvMyName = (TextView) mContentView.findViewById(R.id.tv_myName);
    tvMyName.setText(device.deviceName);
    TextView tvMyStatus = (TextView) mContentView.findViewById(R.id.tv_myStatus);
    tvMyStatus.setText(getDeviceStatus(device.status));
}

@Override
public void onPeersAvailable(WifiP2pDeviceList peerList) {
    if (progressDialog != null && progressDialog.isShowing()) {
        progressDialog.dismiss();
    }
    peers.clear();
    peers.addAll(peerList.getDeviceList());
    ((WiFiPeerListAdapter) getListAdapter()).notifyDataSetChanged();
    if (peers.size() == 0) {
        //Log.d(MainActivity.TAG, "No devices found")
        return;
    }

}

public void clearPeers() {
    peers.clear();
    ((WiFiPeerListAdapter) getListAdapter()).notifyDataSetChanged();
}

/**
 *  FEHLER com.google.android.finsky.wear.ap.a(3): onConnectionFailed: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null} bei API26 8.0.0 jüngere api geht ??
 *
 *  channel '4273b3d8 com.example.mcorp.wifi_service.MyWiFiActivity (s)' ~ Channel is unrecoverably broken and will be disposed!
 *
 */
public void onInitiateDiscovery() {
    if (progressDialog != null && progressDialog.isShowing()) {
        progressDialog.dismiss();
    }
    progressDialog = ProgressDialog.show(getActivity(), "Press back to cancel", "finding peers", true,true, new DialogInterface.OnCancelListener() {

                @Override
                public void onCancel(DialogInterface dialog) {

                }
            });
}

/**
 * An interface-callback for the activity to listen to fragment interaction
 * events.
 */
public interface DeviceActionListener { // aufruf der methoden in UI!?

    void cancelDisconnect();

    void connect(WifiP2pConfig config);

    void disconnect();

    void showDetails(WifiP2pDevice device);
}

}

就是这样

post logs cat MESSAGE编辑了帖子,添加了LOGCAT您发现问题了吗?
package com.example.mcorp.wifi_service;

import android.Manifest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.net.wifi.WpsInfo;
import android.net.wifi.p2p.WifiP2pConfig;
import android.net.wifi.p2p.WifiP2pDevice;
import android.net.wifi.p2p.WifiP2pManager;
import android.os.Build;
import android.provider.Settings;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;



public class MyWiFiActivity extends AppCompatActivity implements WifiP2pManager.ChannelListener, DeviceListFragment.DeviceActionListener{





private static final String TAG = "WIFI______DEBUG";
WifiP2pManager mManager;
WifiP2pManager.Channel mChannel;
BroadcastReceiver mReceiver;

IntentFilter mIntentFilter;

private boolean isWifiP2pEnabled = false;
private boolean retryChannel = false;

public WifiP2pConfig mConfig = new WifiP2pConfig();

String[] PERMISSIONS = {Manifest.permission.ACCESS_WIFI_STATE, Manifest.permission.CHANGE_WIFI_STATE, Manifest.permission.CHANGE_NETWORK_STATE,
        Manifest.permission.INTERNET, Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_NETWORK_STATE,Manifest.permission.ACCESS_FINE_LOCATION,
        Manifest.permission.ACCESS_COARSE_LOCATION};


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //Cahnnel connects p2p, Receiver now notifies this activity about changes and updates accordingly manipulate wifi states
    mManager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
    mChannel = mManager.initialize(this, getMainLooper(), null);
    mReceiver = new WiFiDirectBroadcastReceiver(mManager, mChannel, this);
    //um richtige actions via broadcast zu empfangen
    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);

    Button btn_server = (Button)findViewById(R.id.btn_server);
    Button btn_client = (Button)findViewById(R.id.btn_client);
    //Bei api >22 pemissions_abfrage geändert
    if(!hasPermissions(this, PERMISSIONS)){
        Log.e(TAG, "Permission request gestartet");
        ActivityCompat.requestPermissions(this, PERMISSIONS,1);
    }

    btn_server.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

        }
    });

    btn_client.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

        }
    });

}
//menu_main.xml mit buttons discover u enable
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_main, menu);
    return true;
}
@Override
protected void onResume() {
    super.onResume();
    registerReceiver(mReceiver, mIntentFilter);


}

public static boolean hasPermissions(Context context, String[] permissions) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
        Log.e(TAG, "Permission abfrage nötig");
        for (String permission : permissions) {
            if (ActivityCompat.checkSelfPermission(context, permission) != PackageManager.PERMISSION_GRANTED) {
                Log.e(TAG, "Permission nicht gegeben");
                return false;

            }
        }
    }
    return true;
}

@Override
protected void onPause() {
    super.onPause();
    unregisterReceiver(mReceiver);
}
public void setIsWifiP2pEnabled(boolean isWifiP2pEnabled) {
    this.isWifiP2pEnabled = isWifiP2pEnabled;
}

@Override//für device list fragment
public void cancelDisconnect() {
    if (mManager != null) {
        final DeviceListFragment fragment = (DeviceListFragment) getFragmentManager().findFragmentById(R.id.fragment_list);
        if (fragment.getDevice() == null
                || fragment.getDevice().status == WifiP2pDevice.CONNECTED) { // device aus fragment holen
            disconnect();
        } else if (fragment.getDevice().status == WifiP2pDevice.AVAILABLE
                || fragment.getDevice().status == WifiP2pDevice.INVITED) {

            mManager.cancelConnect(mChannel, new WifiP2pManager.ActionListener() {

                @Override
                public void onSuccess() {
                    Toast.makeText(MyWiFiActivity.this, "Aborting connection",
                            Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onFailure(int reasonCode) {
                    Toast.makeText(MyWiFiActivity.this, "Connect abort request failed. Reason Code: " + reasonCode, Toast.LENGTH_SHORT).show();
                }
            });
        }
    }

}

@Override//connect nach device ausgesucht
public void connect(WifiP2pConfig config) {

    mManager.connect(mChannel, config, new WifiP2pManager.ActionListener() {

        @Override
        public void onSuccess() {
            //success logic

        }

        @Override
        public void onFailure(int reason) {
            //failure logic
            Toast.makeText(MyWiFiActivity.this, "Connect failed. Retry.",
                    Toast.LENGTH_SHORT).show();
        }
    });
}

@Override//für device list fragment
public void disconnect() {


    mManager.removeGroup(mChannel, new WifiP2pManager.ActionListener() {

        @Override
        public void onFailure(int reasonCode) {
            // Log.d(TAG, "Disconnect failed. Reason :" + reasonCode);

        }

        @Override
        public void onSuccess() {

        }

    });
}

@Override//für device list fragment
public void showDetails(WifiP2pDevice device) {

}

//Wegen implements Channel listener
@Override
public void onChannelDisconnected() {
    // we will try once more
    if (mManager != null && !retryChannel) {
        Toast.makeText(this, "Channel lost. Trying again", Toast.LENGTH_LONG).show();
        //resetData();
        retryChannel = true;
        mManager.initialize(this, getMainLooper(), this);
    } else {
        Toast.makeText(this,
                "Severe! Channel is probably lost premanently. Try Disable/Re-Enable P2P.",
                Toast.LENGTH_LONG).show();
    }
}
@Override
public boolean onOptionsItemSelected(MenuItem item) { //Menü mit discover und enable wiFI direct
    switch (item.getItemId()) {
        case R.id.action_directEnable:
            if (mManager != null && mChannel != null) {

                //Zugriff auf Systemeinstellungen WLAN--> enable wifi Direkt
                Toast.makeText(this, "Please Enable WiFi Direct", Toast.LENGTH_LONG).show();
                startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
            } else {
                Log.e(TAG, "channel or manager is null");
            }
            return true;

        case R.id.action_directDiscover:
            if (!isWifiP2pEnabled) {
                Toast.makeText(MyWiFiActivity.this, R.string.p2p_off_warning, Toast.LENGTH_SHORT).show();
                return true;
            }
            final DeviceListFragment fragment = (DeviceListFragment) getFragmentManager().findFragmentById(R.id.fragment_list);
            fragment.onInitiateDiscovery();
            mManager.discoverPeers(mChannel, new WifiP2pManager.ActionListener() {

                @Override
                public void onSuccess() {
                    Toast.makeText(MyWiFiActivity.this, "Discovery Initiated", Toast.LENGTH_SHORT).show();
                }

                @Override
                public void onFailure(int reasonCode) {
                    Toast.makeText(MyWiFiActivity.this, "Discovery Failed : " + reasonCode, Toast.LENGTH_SHORT).show();
                }
            });
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}
public void resetData() {
    Log.e(TAG, "ResetData called");
    DeviceListFragment fragmentList = (DeviceListFragment) getFragmentManager().findFragmentById(R.id.fragment_list);

    if (fragmentList != null) {
        fragmentList.clearPeers();
    }

    fragmentList.device_choosen = false;

}
}
package com.example.mcorp.wifi_service;
import android.app.ListFragment;
import android.app.ProgressDialog;
import android.content.Context;

import android.content.DialogInterface;
import android.net.wifi.p2p.WifiP2pConfig;
import android.net.wifi.p2p.WifiP2pDevice;
import android.net.wifi.p2p.WifiP2pDeviceList;
import android.net.wifi.p2p.WifiP2pManager.PeerListListener;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;


public class DeviceListFragment extends ListFragment implements PeerListListener {




private List<WifiP2pDevice> peers = new ArrayList<WifiP2pDevice>();
ProgressDialog progressDialog = null;
View mContentView = null;
private WifiP2pDevice device;
public boolean device_choosen = false;

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
    this.setListAdapter(new WiFiPeerListAdapter(getActivity(), R.layout.row_devices, peers));

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    mContentView = inflater.inflate(R.layout.device_list, null);
    return mContentView;
}


public WifiP2pDevice getDevice() {
    return device;
}


private static String getDeviceStatus(int deviceStatus) {
    //Log.d(MainActivity.TAG, "Peer status :" + deviceStatus);
    switch (deviceStatus) {
        case WifiP2pDevice.AVAILABLE:
            return "Available";
        case WifiP2pDevice.INVITED:
            return "Invited";
        case WifiP2pDevice.CONNECTED:
            return "Connected";
        case WifiP2pDevice.FAILED:
            return "Failed";
        case WifiP2pDevice.UNAVAILABLE:
            return "Unavailable";
        default:
            return "Unknown";

    }
}


@Override //
public void onListItemClick(ListView l, View v, int position, long id) {
    WifiP2pDevice device = (WifiP2pDevice) getListAdapter().getItem(position);
    device_choosen = true;
    getActivity().findViewById(R.id.btn_server).setVisibility(View.VISIBLE);
    getActivity().findViewById(R.id.btn_client).setVisibility(View.VISIBLE);

    ((DeviceActionListener) getActivity()).showDetails(device);
    //getActivity() in a Fragment returns the Activity the Fragment is currently associated
}

/**
 * Array adapter for ListFragment that maintains WifiP2pDevice list.
 */
private class WiFiPeerListAdapter extends ArrayAdapter<WifiP2pDevice> {

    private List<WifiP2pDevice> items;

    public WiFiPeerListAdapter(Context context, int textViewResourceId, List<WifiP2pDevice> objects) {
        super(context, textViewResourceId, objects);
        items = objects;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        if (v == null) {
            LayoutInflater vi = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = vi.inflate(R.layout.row_devices, null);
        }
        WifiP2pDevice device = items.get(position); // Hier ausgewähltes Device drin
        if (device != null) {
            TextView tvDeviceName = (TextView) v.findViewById(R.id.tv_deviceName);
            TextView tvDeviceDetails = (TextView) v.findViewById(R.id.tv_deviceDetails);
            if (tvDeviceName != null) {
                tvDeviceName.setText(device.deviceName);
            }
            if (tvDeviceDetails != null) {
                tvDeviceDetails.setText(getDeviceStatus(device.status));
            }
        }
        return v;
    }
}

/**
 * Update UI for this device.
 */
public void updateThisDevice(WifiP2pDevice device) {
    this.device = device;
    TextView tvMyName = (TextView) mContentView.findViewById(R.id.tv_myName);
    tvMyName.setText(device.deviceName);
    TextView tvMyStatus = (TextView) mContentView.findViewById(R.id.tv_myStatus);
    tvMyStatus.setText(getDeviceStatus(device.status));
}

@Override
public void onPeersAvailable(WifiP2pDeviceList peerList) {
    if (progressDialog != null && progressDialog.isShowing()) {
        progressDialog.dismiss();
    }
    peers.clear();
    peers.addAll(peerList.getDeviceList());
    ((WiFiPeerListAdapter) getListAdapter()).notifyDataSetChanged();
    if (peers.size() == 0) {
        //Log.d(MainActivity.TAG, "No devices found")
        return;
    }

}

public void clearPeers() {
    peers.clear();
    ((WiFiPeerListAdapter) getListAdapter()).notifyDataSetChanged();
}

/**
 *  FEHLER com.google.android.finsky.wear.ap.a(3): onConnectionFailed: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null} bei API26 8.0.0 jüngere api geht ??
 *
 *  channel '4273b3d8 com.example.mcorp.wifi_service.MyWiFiActivity (s)' ~ Channel is unrecoverably broken and will be disposed!
 *
 */
public void onInitiateDiscovery() {
    if (progressDialog != null && progressDialog.isShowing()) {
        progressDialog.dismiss();
    }
    progressDialog = ProgressDialog.show(getActivity(), "Press back to cancel", "finding peers", true,true, new DialogInterface.OnCancelListener() {

                @Override
                public void onCancel(DialogInterface dialog) {

                }
            });
}

/**
 * An interface-callback for the activity to listen to fragment interaction
 * events.
 */
public interface DeviceActionListener { // aufruf der methoden in UI!?

    void cancelDisconnect();

    void connect(WifiP2pConfig config);

    void disconnect();

    void showDetails(WifiP2pDevice device);
}

}
    01-10 14:59:11.946 5427-13173/? E/installd: Failed to delete /data/app/vmdl2128893066.tmp: No such file or directory
01-10 14:59:12.028 22711-22731/? E/ExternalAccountType: Unsupported attribute readOnly
01-10 14:59:12.070 22711-22731/? E/ExternalAccountType: Unsupported attribute readOnly
01-10 14:59:12.080 7224-7224/? E/RegisteredServicesCache: Next Tag=services
01-10 14:59:12.081 7224-7224/? E/RegisteredServicesCache: 1invalidateCache:WriteServiceStateToFile
01-10 14:59:12.081 7224-7224/? E/RegisteredServicesCache:  Writing service state Data Always
01-10 14:59:12.125 2102-2122/? E/ExternalAccountType: Unsupported attribute readOnly
01-10 14:59:12.130 555-555/? E/ANDR-PERF-MPCTL: hint lookup failed
01-10 14:59:12.131 5618-8577/? E/ANDR-PERF-JNI: com_qualcomm_qtiperformance_native_perf_io_prefetch_start
01-10 14:59:12.134 5618-8577/? E/ANDR-PERF-JNI: gIOPHAl initialized
01-10 14:59:12.134 5618-8577/? E/ANDR-PERF-JNI: gIOPHAl calling iopstart
01-10 14:59:12.134 554-554/? E/ANDR-IOP: IOP HAL: Received pkg_name = com.example.mcorp.wifi_service pid = -1
01-10 14:59:12.134 554-624/? E/ANDR-IOP: is_in_recent_list is TRUE
01-10 14:59:12.135 554-624/? E/ANDR-IOP: io prefetch is deactivate
01-10 14:59:12.152 555-555/? E/ANDR-PERF-MPCTL: hint lookup failed
01-10 14:59:12.153 5618-8577/? E/ANDR-PERF-JNI: com_qualcomm_qtiperformance_native_perf_io_prefetch_start
01-10 14:59:12.153 5618-8577/? E/ANDR-PERF-JNI: gIOPHAl initialized
01-10 14:59:12.153 5618-8577/? E/ANDR-PERF-JNI: gIOPHAl calling iopstart
01-10 14:59:12.153 554-554/? E/ANDR-IOP: IOP HAL: Received pkg_name = com.example.mcorp.wifi_service pid = 26879
01-10 14:59:12.153 554-624/? E/ANDR-IOP: io prefetch Capture is deactivated 
01-10 14:59:12.215 2102-2122/? E/ExternalAccountType: Unsupported attribute readOnly
01-10 14:59:12.375 26211-26211/? E/Finsky: [2] com.google.android.finsky.wear.ap.a(3): onConnectionFailed: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
01-10 14:59:12.403 7136-2397/? E/NetworkScheduler: Unrecognised action provided: android.intent.action.PACKAGE_REPLACED
01-10 14:59:12.448 7136-8785/? E/ExecutionCriteria: Package unavailable for task: com.google.android.talk/com.google.android.apps.hangouts.concurrent.impl.GcmTriggeredNotifier{u=0 tag="network_connectivity_wakeup:persisted" trigger=window{start=259135s,end=259136s,earliest=-14479660s,latest=-14479659s} requirements=[NET_CONNECTED] attributes=[PERSISTED] scheduled=-14738795s last_run=N/A jid=N/A status=PENDING retries=0 client_lib=SOURCE_UNKNOWN-0}
01-10 14:59:12.507 555-555/? E/ANDR-PERF-MPCTL: hint lookup failed
01-10 14:59:12.507 546-546/? E/QCOM PowerHAL: Failed to acquire lock.

01-10 14:59:12.561 547-547/? E/qti_sensors_hal: sendEnableReq:sensor(android.sensor.proximity) Sending enable to svc no:21
01-10 14:59:12.570 547-952/? E/qti_sensors_hal: reportSingleEvent: prox data: 5.000305 raw:44.000000 2988955392.000000 SAM TS: 4186367965 HAL TS:783114607762662 elapsedRealtimeNano:783132994026412

01-10 14:59:12.714 2517-2517/? E/ContentDetectionService: updateSceneDetectionState() - No SceneDetector
01-10 14:59:12.759 5618-10338/? E/DeviceKeyHandler: receive keyguard done, process gesture action
01-10 14:59:12.821 26879-26879/com.example.mcorp.wifi_service E/WIFI______DEBUG: Permission abfrage nötig
01-10 14:59:12.869 5537-6394/? E/fpc_fingerprint_hal: fpc_wait_finger_up FPC_LIB_FINGER_LOST
01-10 14:59:12.869 5537-6394/? E/fpc_fingerprint_hal: do_home fpc_wait_finger_up before do HOME ,status 0 
01-10 14:59:12.869 5537-6394/? E/fpc_fingerprint_hal: fpc_wait_finger_down_for_home_12_zone  -4
01-10 14:59:12.869 5537-6394/? E/fpc_fingerprint_hal: do_home  -4 canceled 00
01-10 14:59:12.876 547-547/? E/qti_sensors_hal: sendCancel:sensor(com.oneplus.sensor.pocket) Sending cancel to svc no:31
01-10 14:59:12.878 5537-6394/? E/fpc_fingerprint_hal: do_home  sendCancel:sensor(android.sensor.proximity) Sending cancel to svc no:21
01-10 14:59:14.142 555-606/? E/ANDR-PERF-OPTSHANDLER: perf_lock_rel: updated /sys/class/scsi_host/host0/../../../clkscale_enable with 1
                                                       return value 2
01-10 14:59:14.151 555-606/? E/ANDR-PERF-RESOURCEQS: Failed to reset optimization [3, 0]
01-10 14:59:14.636 5618-7128/? E/JobSchedulerService: jobid:20536
                                                      java.lang.IllegalStateException: Same jobid in systemuid.
                                                          at com.android.server.job.JobSchedulerService.scheduleAsPackage(JobSchedulerService.java:710)
                                                          at com.android.server.job.JobSchedulerService$JobSchedulerStub.schedule(JobSchedulerService.java:1904)
                                                          at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:44)
                                                          at com.android.server.backup.FullBackupJob.schedule(FullBackupJob.java:52)
                                                          at com.android.server.backup.BackupManagerService$4.run(BackupManagerService.java:5417)
                                                          at android.os.Handler.handleCallback(Handler.java:789)
                                                          at android.os.Handler.dispatchMessage(Handler.java:98)
                                                          at android.os.Looper.loop(Looper.java:164)
                                                          at android.os.HandlerThread.run(HandlerThread.java:65)
01-10 14:59:22.892 5427-13173/? E/installd: Failed to delete /data/app/vmdl1894885616.tmp: No such file or directory
01-10 14:59:22.961 2102-2122/? E/ExternalAccountType: Unsupported attribute readOnly
01-10 14:59:22.962 22711-22731/? E/ExternalAccountType: Unsupported attribute readOnly
01-10 14:59:23.098 7224-7224/? E/RegisteredServicesCache: Next Tag=services
01-10 14:59:23.098 7224-7224/? E/RegisteredServicesCache: 1invalidateCache:WriteServiceStateToFile
01-10 14:59:23.098 7224-7224/? E/RegisteredServicesCache:  Writing service state Data Always
01-10 14:59:23.116 7136-2397/? E/NetworkScheduler: Unrecognised action provided: android.intent.action.PACKAGE_REMOVED
01-10 14:59:23.149 22711-22731/? E/ExternalAccountType: Unsupported attribute readOnly
01-10 14:59:23.192 2102-2122/? E/ExternalAccountType: Unsupported attribute readOnly
01-10 14:59:23.322 26211-26211/? E/Finsky: [2] com.google.android.finsky.wear.ap.a(3): onConnectionFailed: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
01-10 14:59:23.404 7136-2397/? E/NetworkScheduler: Unrecognised action provided: android.intent.action.PACKAGE_REPLACED
01-10 14:59:23.418 26211-26211/? E/Finsky: [2] com.google.android.finsky.wear.ap.a(3): onConnectionFailed: ConnectionResult{statusCode=API_UNAVAILABLE, resolution=null, message=null}
01-10 14:59:23.452 7136-8785/? E/ExecutionCriteria: Package unavailable for task: com.google.android.talk/com.google.android.apps.hangouts.concurrent.impl.GcmTriggeredNotifier{u=0 tag="network_connectivity_wakeup:persisted" trigger=window{start=259135s,end=259136s,earliest=-14479671s,latest=-14479670s} requirements=[NET_CONNECTED] attributes=[PERSISTED] scheduled=-14738806s last_run=N/A jid=N/A status=PENDING retries=0 client_lib=SOURCE_UNKNOWN-0}
01-10 14:59:25.584 5618-7128/? E/JobSchedulerService: jobid:20536
                                                      java.lang.IllegalStateException: Same jobid in systemuid.
                                                          at com.android.server.job.JobSchedulerService.scheduleAsPackage(JobSchedulerService.java:710)
                                                          at com.android.server.job.JobSchedulerService$JobSchedulerStub.schedule(JobSchedulerService.java:1904)
                                                          at android.app.JobSchedulerImpl.schedule(JobSchedulerImpl.java:44)
                                                          at com.android.server.backup.FullBackupJob.schedule(FullBackupJob.java:52)
                                                          at com.android.server.backup.BackupManagerService$4.run(BackupManagerService.java:5417)
                                                          at android.os.Handler.handleCallback(Handler.java:789)
                                                          at android.os.Handler.dispatchMessage(Handler.java:98)
                                                          at android.os.Looper.loop(Looper.java:164)
                                                          at android.os.HandlerThread.run(HandlerThread.java:65)
01-10 14:59:27.142 555-606/? E/ANDR-PERF-OPTSHANDLER: perf_lock_rel: updated /sys/class/scsi_host/host0/../../../clkscale_enable with 1
                                                       return value 2
01-10 14:59:28.208 555-555/? E/ANDR-PERF-MPCTL: hint lookup failed
01-10 14:59:29.540 555-606/? E/ANDR-PERF-OPTSHANDLER: perf_lock_rel: updated /sys/class/scsi_host/host0/../../../clkscale_enable with 1
                                                       return value 2
01-10 14:59:31.736 555-606/? E/ANDR-PERF-OPTSHANDLER: perf_lock_rel: updated /sys/class/scsi_host/host0/../../../clkscale_enable with 1
                                                       return value 2
01-10 14:59:37.792 25086-25086/? E/RecyclerView: No adapter attached; skipping layout
01-10 14:59:37.815 555-606/? E/ANDR-PERF-OPTSHANDLER: perf_lock_rel: updated /sys/class/scsi_host/host0/../../../clkscale_enable with 1
                                                       return value 2
01-10 14:59:43.133 5499-5499/? E/wificond: Received error messsage: Device or resource busy
01-10 14:59:43.133 5499-5499/? E/wificond: NL80211_CMD_TRIGGER_SCAN failed
01-10 14:59:43.133 5618-6136/? E/WificondScannerImpl: Failed to start scan, freqs=null
01-10 14:59:51.242 5618-6139/? E/SupplicantP2pIfaceHal: getNetwork got null network
01-10 14:59:51.242 5618-6139/? E/SupplicantP2pIfaceHal: Failed to retrieve network object for 2