无法使用 Nearby api 发现 Raspberry pi
Cannot discover Raspberry pi using Nearby api
我正在做一个项目,我必须使用 Google 的 Nearby API 在 Raspberry pi3(正在处理 Android 事情)和 android 之间进行通信移动的。我成功地在 Raspberry pi3 上启动了广告服务,并在移动设备上成功启动了发现服务。但是我无法在我的手机上发现Raspberry pi3。这是我的代码-
在 Raspberry pi3:
private void startAdvertizing() {
logging("advertizing initiated");
Nearby.Connections.startAdvertising(mCLient,"Tinku",getString(R.string.service_id),mConnectionLifecycleCallback
,new AdvertisingOptions(Strategy.P2P_CLUSTER)).setResultCallback(new ResultCallback<Connections.StartAdvertisingResult>() {
@Override
public void onResult(@NonNull Connections.StartAdvertisingResult startAdvertisingResult) {
if (startAdvertisingResult.getStatus().isSuccess()){
logging("avertizind success");
} else {
logging(startAdvertisingResult.getStatus().getStatusMessage());
}
}
});
}
在移动端:
private void startDicovery() {
Log.d(TAG,"Initializing discovery");
tv.setText("Initializing discovery");
EndpointDiscoveryCallback mEndPointDiscoveryCallback = new EndpointDiscoveryCallback() {
@Override
public void onEndpointFound(String s, DiscoveredEndpointInfo discoveredEndpointInfo) {
Log.d(TAG,"Endpoint found");
tv.setText("Endpoint found");
}
@Override
public void onEndpointLost(String s) {
Log.d(TAG,"Endpoint Lost, "+s);
tv.setText("Endpoint Lost, "+s);
}
};
Nearby.Connections.startDiscovery(mCLient,getString(R.string.service_id),mEndPointDiscoveryCallback,new DiscoveryOptions(Strategy.P2P_CLUSTER))
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
if (status.isSuccess()){
logging("Discovert success");
isDiscovery = true;
} else {
logging("Discovery failed "+ status.getStatusMessage());
isDiscovery = false;
}
}
});
}
我不知道我错过了什么。任何帮助将不胜感激。
嗯,我以前见过这种方法。您可以尝试几件事。
1) 检查日志。参见
2) 在两个 Android phone 上尝试,以确保代码有效。这些片段看起来不错,但你永远不知道。
3) 向我发送您的 phone 和 Android Things 设备的模型和 Android OS 构建版本。
我正在做一个项目,我必须使用 Google 的 Nearby API 在 Raspberry pi3(正在处理 Android 事情)和 android 之间进行通信移动的。我成功地在 Raspberry pi3 上启动了广告服务,并在移动设备上成功启动了发现服务。但是我无法在我的手机上发现Raspberry pi3。这是我的代码-
在 Raspberry pi3:
private void startAdvertizing() {
logging("advertizing initiated");
Nearby.Connections.startAdvertising(mCLient,"Tinku",getString(R.string.service_id),mConnectionLifecycleCallback
,new AdvertisingOptions(Strategy.P2P_CLUSTER)).setResultCallback(new ResultCallback<Connections.StartAdvertisingResult>() {
@Override
public void onResult(@NonNull Connections.StartAdvertisingResult startAdvertisingResult) {
if (startAdvertisingResult.getStatus().isSuccess()){
logging("avertizind success");
} else {
logging(startAdvertisingResult.getStatus().getStatusMessage());
}
}
});
}
在移动端:
private void startDicovery() {
Log.d(TAG,"Initializing discovery");
tv.setText("Initializing discovery");
EndpointDiscoveryCallback mEndPointDiscoveryCallback = new EndpointDiscoveryCallback() {
@Override
public void onEndpointFound(String s, DiscoveredEndpointInfo discoveredEndpointInfo) {
Log.d(TAG,"Endpoint found");
tv.setText("Endpoint found");
}
@Override
public void onEndpointLost(String s) {
Log.d(TAG,"Endpoint Lost, "+s);
tv.setText("Endpoint Lost, "+s);
}
};
Nearby.Connections.startDiscovery(mCLient,getString(R.string.service_id),mEndPointDiscoveryCallback,new DiscoveryOptions(Strategy.P2P_CLUSTER))
.setResultCallback(new ResultCallback<Status>() {
@Override
public void onResult(@NonNull Status status) {
if (status.isSuccess()){
logging("Discovert success");
isDiscovery = true;
} else {
logging("Discovery failed "+ status.getStatusMessage());
isDiscovery = false;
}
}
});
}
我不知道我错过了什么。任何帮助将不胜感激。
嗯,我以前见过这种方法。您可以尝试几件事。
1) 检查日志。参见
2) 在两个 Android phone 上尝试,以确保代码有效。这些片段看起来不错,但你永远不知道。
3) 向我发送您的 phone 和 Android Things 设备的模型和 Android OS 构建版本。