Faits: A. Ressortissant turc né en 1967, X._ a déposé une demande d'asile en Suisse en 2002, qui a été définitivement rejetée le 23 avril 2004, un délai lui étant imparti au 21 juin 2004 pour quitter notre pays. Après son mariage en novembre 2004 avec une ressortissante suisse, X._ a été mis au bénéfice d'une autorisation de séjour. Le couple s'est séparé en 2006. Le 9 novembre 2007, X._ a demandé la prolongation de son autorisation de séjour, ce que lui a refusé l'Office cantonal de la population du canton de Genève (ci-après: l'Office cantonal), puis, sur recours, respectivement la Commission cantonale de recours en matière administrative et, le 1er mars 2011, la Cour de justice du canton de Genève (ci-après: la Cour de justice). Le recours formé par X._ à l'encontre de cette dernière décision a été déclaré irrecevable par le Tribunal fédéral le 19 avril 2011 (cause 2C_318/2011). Le 21 juillet 2011, l'Office cantonal a fixé un nouveau délai de départ à X._ au 31 août 2011. Le prénommé a sollicité la prolongation de ce délai, en indiquant qu'il souffrait d'un état dépressif récurrent et qu'il envisageait de demander un permis humanitaire; l'autorité cantonale lui a répondu qu'il devait lui faire parvenir, d'ici à la fin du mois d'août, une demande de permis humanitaire ou se présenter avec un billet d'avion et son passeport le 30 août 2011, sous peine de s'exposer à d'éventuelles mesures de contrainte. X._ ne s'étant pas manifesté, l'Office cantonal a mandaté la police pour exécuter son renvoi; un vol à destination d'Istanbul a été réservé à son intention pour le 25 octobre 2011. Le 24 octobre 2011, les Hôpitaux universitaires genevois ont fait parvenir au mandataire de X._ un certificat médical résumant les problèmes psychiatriques de son client et les procédures en cours auprès de l'assurance-invalidité (ci-après: AI). Ce document se terminait par une requête tendant à obtenir un report du renvoi en Turquie en fonction de l'avancée du dossier AI. X._ ayant fait état de la perte de son passeport, le vol réservé à son intention a dû être annulé. Par lettre du 27 octobre 2011, l'Office cantonal a demandé au mandataire de X._ de fournir, avant la fin du mois de novembre 2011, un document de l'office AI attestant que sa présence à Genève était indispensable à la poursuite de la procédure AI. X._ était également prié de se faire établir un nouveau document de voyage et d'en remettre une copie avant la fin du mois de novembre 2011. Ce courrier étant resté sans suite, l'Office cantonal a une nouvelle fois demandé à la police d'exécuter le renvoi de l'intéressé en Turquie. X._ n'a pas donné suite à une convocation de la police en février 2012. Le 9 mars 2012, il n'a pas ouvert aux policiers chargés de perquisitionner son logement. Entrés de force, ceux-ci y ont trouvé son passeport annoncé comme perdu et ont interpellé l'intéressé. Le jour-même, l'officier de police a ordonné la mise en détention de X._ pour un mois, décision qui a été confirmée d'abord par le Tribunal administratif de première instance, puis, le 30 mars 2012, par la Cour de justice. Le 12 mars 2012, X._ a refusé de prendre place à bord d'un vol qui lui était réservé à destination de la Turquie. B. Le 4 avril 2012, l'Office cantonal a demandé la prolongation de la détention administrative de X._ pour une durée de trois mois, en précisant être dans l'attente de la confirmation d'une place à bord d'un vol spécial pour le 9 juillet 2012 au plus tard, cette date correspondant à l'échéance de la validité du passeport de l'intéressé. Par jugement du 5 avril 2012, le Tribunal administratif de première instance du canton de Genève a prolongé la détention administrative de X._ pour une durée de trois mois, soit jusqu'au 6 juillet 2012. Le recours déposé par celui-ci a été rejeté par la Cour de justice le 20 avril 2012. C. A l'encontre de l'arrêt du 20 avril 2012, X._ forme un recours en matière de droit public au Tribunal fédéral, dans lequel il conclut à l'annulation de l'arrêt attaqué et à ce que sa mise en liberté soit ordonnée, subsidiairement au renvoi de la cause à l'autorité cantonale pour qu'elle statue dans le sens des considérants, sous suite de frais et dépens. Il sollicite par ailleurs le bénéfice de l'assistance judiciaire. L'Office cantonal et l'Officier de police n'ont pas formulé d'observations, à l'instar de la Cour de justice, qui a au surplus déclaré persister dans les termes de son arrêt. L'Office fédéral des migrations n'a pas pris position. X._ a produit des observations finales, dans lesquelles il se prévaut une nouvelle fois de la dégradation de son état de santé; il confirme ses conclusions et demande au surplus sa mise en liberté immédiate à titre de mesures provisionnelles. 