私が取り組んでいるアプリには、HTMLファイルをアプリに送信して印刷する機能があります(問題のアプリはBrother iPrint&Scanです)。
これを行うコードは次のとおりです。
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/html");
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Printable Stuff");
// Send attachment (the html file).
Uri uri = Uri.fromFile(htmlFile);
emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(emailIntent, "Send To"));
これが行うことは、互換性のあるセレクターを表示することです。通常、これは gmail と兄弟の iPrint&Scan アプリです。Gmail はそれを添付ファイルとして受け取り、送信できます。問題ないように見えます。ブラウザーで表示できます。html マークアップは問題ないように見えます (そして検証されます)。
ここでキャッチがあります...兄弟のiPrint&Scanアプリはhtmlファイルを取得しますが、htmlをテキストとして表示するだけです...奇妙です。それはまったくレンダリングされません。
さらに厄介なことは、ブラウザからアプリにページを共有でき、それが正常に表示されることです (HTML を読み取って解析できるのでしょうか?)
ここで何か間違ったことをしていますか?
私も試しました:
emailIntent.setDataAndType(Uri.fromFile(htmlFile), "text/html");
インテントに余分なものを入れる代わりに...しかし、兄弟の印刷アプリはリストにまったく表示されません(gmailは表示されます)。
何か案は?