The SDP registeration code is missing Class ID List registeration. And because of that Android doesn't find the offered service.
If you add in the register_service() function followin code:
// set the Service class ID
sdp_list_t service_class = {NULL, &svc_uuid};
sdp_set_service_classes( record, &service_class);
After set general service ID lines. The android device should find your service.
This worked with Samsung Galaxy S with 2.2 firmware. But doesn't work with Motorola Milestone with 2.1-update1