যদি আপনি একটি লোকাল সার্ভিস সরবরাহ করতে থাকেন, আপনার এটা সার্ভিস ডিসকভারির জন্য রেজিস্টার করতে হবে। একসময় আপনার লোকাল সার্ভিস রেজিস্টার হেেয় থাকে, পিয়ার থেকে সার্ভিস ডিসকভারী রিকোয়েস্ট এ ফ্রেমওয়ার্ক স্বয়ংক্রিয়ভাবে রেসপন্স করবে।
একটি লোকাল সার্ভিস তৈরী করতে:
একটি WifiP2pServiceInfo অবজেক্ট তৈরী করুন
আপনার সার্ভিস সম্পর্কিত তথ্য এটার সাথে প্রচারিত করুন
সার্ভিস ডিসকভারির জন্য লোকাল সার্ভিস রেজিস্টার করতে addLocalService()কল করুন
private void startRegistration() {
// Create a string map containing information about your service.
Map record = new HashMap();
record.put("listenport", String.valueOf(SERVER_PORT));
record.put("buddyname", "John Doe" + (int) (Math.random() * 1000));
record.put("available", "visible");
// Service information. Pass it an instance name, service type
// _protocol._transportlayer , and the map containing
// information other devices will want once they connect to this one.
WifiP2pDnsSdServiceInfo serviceInfo =
WifiP2pDnsSdServiceInfo.newInstance("_test", "_presence._tcp", record);
// Add the local service, sending the service info, network channel,
// and listener that will be used to indicate success or failure of
// the request.
mManager.addLocalService(channel, serviceInfo, new ActionListener() {
@Override
public void onSuccess() {
// Command successful! Code isn't necessarily needed here,
// Unless you want to update the UI or add logging statements.
}
@Override
public void onFailure(int arg0) {
// Command failed. Check for P2P_UNSUPPORTED, ERROR, or BUSY
}
});
}