Faits: A. X._, ressortissant kosovar né en 1971, a été arrêté le 3 novembre 2009 et inculpé, par le Juge d'instruction du canton de Genève, de violation de la LStup. Il lui est reproché d'avoir, le 23 octobre 2009 en Argovie, remis un sac contenant 5 kg d'héroïne aux dénommés A._ et B._ (également inculpés, mais remis en liberté), qui devaient transporter la marchandise jusqu'à Genève. La détention préventive a été prolongée par ordonnances de la Chambre d'accusation genevoise des 10 novembre 2009 et 26 janvier 2010, en raison des risques de fuite et de collusion. Par ordonnance du 5 février 2010, la Chambre d'accusation a rejeté une demande de mise en liberté. Les charges à l'encontre de X._ étaient suffisantes. Le risque de collusion persistait jusqu'à l'audience de jugement car il était à craindre que l'inculpé ne tente de contacter ceux qui le mettaient en cause, ainsi que le commanditaire présumé du trafic de drogue. Le risque de fuite a lui aussi été confirmé, compte tenu de la nationalité de l'inculpé - lequel aurait cherché, dans un premier temps, à échapper à la justice suisse - et de la gravité des faits. Par arrêt du 2 mars 2010 (1B_40/2010), le Tribunal fédéral a rejeté le recours en matière pénale formé par X._, en confirmant le risque de collusion et en laissant ouverte la question du risque de fuite. B. A la requête du Juge d'instruction, la Chambre d'accusation a, par ordonnance du 22 juin 2010, autorisé la prolongation de la détention jusqu'au 22 septembre 2010. Elle a considéré qu'il y avait un risque de fuite, compte tenu de l'imminence du jugement et de l'absence d'attaches de l'inculpé avec la Suisse. X._ forme un recours en matière pénale par lequel il demande l'annulation de l'ordonnance du 22 juin 2010, et sa mise en liberté immédiate. La Chambre d'accusation se réfère à sa décision. Le Ministère public conclut au rejet du recours. Invité à répliquer, le recourant a renoncé à formuler des observations. 