Androidのjava.net.URIでIPv6 scope_idが扱えない件

タイトル通り.

URI v6linklocal = new URI("http://[fe80::1%9]/foo");

を呼ぶとURISyntaxExceptionが返ってくる.

scope_idについては,RFC 4007で文書化されている.しかしAndroid Developersに

A Uniform Resource Identifier that identifies an abstract or physical resource, as specified by RFC 2396.

書かれている通り,Androidjava.net.URIRFC 2396に準拠している.そのため,最初に示したようなURIは誤りとして扱われる.

今のところ,直接的な対処法は無さそう.