gpt4 book ai didi

android - 与 Wifi Direct 的 p2p 连接中的信号强度?

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:22 26 4
gpt4 key购买 nike

我正在看 Android 的 WifiDirect 演示,想知道是否可以在两个连接的设备之间获取 RSSI 或信号强度等信息。

抱歉,如果这个问题没有意义,我知道可以从接入点获取 RSSI,但我想知道的是 RSSI 的概念是否存在于 Wifi Direct 设备之间的 p2p 连接中。

感谢您的宝贵时间。

最佳答案

Note: This answer was true for the API level 14, I don't know if it still applies to the latest Android versions.

Android 代码源中存在名为 WifiP2pPeer 的非文档化文件。它包含一些“有趣”的行。

我们可以看到 RSSI 值是硬编码的 (mRssi = 60;//TODO: fix),因此该功能可能尚未实现...(与 Android 14 中的其他功能一样)关于 WifiP2p)。

public class WifiP2pPeer extends Preference {

private static final int[] STATE_SECURED = {R.attr.state_encrypted};
public WifiP2pDevice device;

private int mRssi;
private ImageView mSignal;

private static final int SIGNAL_LEVELS = 4;

public WifiP2pPeer(Context context, WifiP2pDevice dev) {
super(context);
device = dev;
setWidgetLayoutResource(R.layout.preference_widget_wifi_signal);
mRssi = 60; //TODO: fix
}

@Override
protected void onBindView(View view) {
if (TextUtils.isEmpty(device.deviceName)) {
setTitle(device.deviceAddress);
} else {
setTitle(device.deviceName);
}
mSignal = (ImageView) view.findViewById(R.id.signal);
if (mRssi == Integer.MAX_VALUE) {
mSignal.setImageDrawable(null);
} else {
mSignal.setImageResource(R.drawable.wifi_signal);
mSignal.setImageState(STATE_SECURED, true);
}
refresh();
super.onBindView(view);
}

@Override
public int compareTo(Preference preference) {
if (!(preference instanceof WifiP2pPeer)) {
return 1;
}
WifiP2pPeer other = (WifiP2pPeer) preference;

// devices go in the order of the status
if (device.status != other.device.status) {
return device.status < other.device.status ? -1 : 1;
}

// Sort by name/address
if (device.deviceName != null) {
return device.deviceName.compareToIgnoreCase(other.device.deviceName);
}

return device.deviceAddress.compareToIgnoreCase(other.device.deviceAddress);
}

int getLevel() {
if (mRssi == Integer.MAX_VALUE) {
return -1;
}
return WifiManager.calculateSignalLevel(mRssi, SIGNAL_LEVELS);
}

private void refresh() {
if (mSignal == null) {
return;
}
Context context = getContext();
mSignal.setImageLevel(getLevel());
String[] statusArray = context.getResources().getStringArray(R.array.wifi_p2p_status);
setSummary(statusArray[device.status]);
}
}

关于android - 与 Wifi Direct 的 p2p 连接中的信号强度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10603309/

26 4 0
文章推荐: android - 发出带有权限拒绝的传出短信
文章推荐: android - 如何使 GIF 文件适合 android 中的屏幕大小
文章推荐: c# - 如何导入 System.Net.Http.ObjectContent 以便我可以将 HttpResponseMessage.Content 转换为它?