はじめに
今回も以前に作成した開発環境を使用してFlashAir開発を行っていきます。
前々回に作成したプロジェクトを使用し、FlashAirからファイルをダウンロードしてみましょう。
環境:GalaxyS5, Windows8.1(64bit)
今後FlashAirのAPIなどを使用し、開発を行っていきますので下記サイトをご参考ください。
参考:FlashAir™ Developers
1. FlashAirとの接続
1-1. Android Studioを起動し、前々回作成したプロジェクトを開きます。
1-2. [SampleConnection]クラスに下記のソースコード(downloadRequestメソッド)を追記します。
内容については[2. ソースコードの説明]で説明していきます。
SampleConnection.java
…
} finally {
if (bos != null) bos.close();
if (bis != null) bis.close();
if (is != null) is.close();
if (conn != null) conn.disconnect();
}
return result;
}
public String downloadRequest(String command, File outputFile) throws Exception {
HttpURLConnection conn = null;
InputStream is = null;
BufferedInputStream bis = null;
FileOutputStream fos = null;
try {
URL url = getUrl(command);
conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(_connTimeout);
conn.setInstanceFollowRedirects(false);
conn.setUseCaches(false);
if (outputFile.exists()) {
outputFile.delete();
}
is = conn.getInputStream();
bis = new BufferedInputStream(is, _bufferSize);
fos = new FileOutputStream(outputFile);
byte[] buff = new byte[_bufferSize];
int tmpSize = 0;
while ((tmpSize = bis.read(buff)) != -1) {
fos.write(buff, 0, tmpSize);
}
} finally {
if (fos != null) fos.close();
if (bis != null) bis.close();
if (is != null) is.close();
if (conn != null) conn.disconnect();
}
checkResponse(conn);
return outputFile.getPath();
}
private URL getUrl(String command) throws IOException {
if (!command.startsWith("/")) {
command = "/" + command;
}
…
1-3. [AndroidManifest.xml]ファイルに[android.permission.WRITE_EXTERNAL_STORAGE]権限を追記します。
2. ソースコードの説明
2-1. [outputFile.exists()]について
端末内に同じ名前のファイル存在する場合、削除しています。
ここは用途に応じて変更して頂いて構いません。
2-2. [ while ((tmpSize = bis.read(buff)) != -1) {]について
FlashAirから取得したファイルのデータを端末のフォルダに書き出しています。
最後に
お疲れ様でした、FlashAirからのファイルダウンロードは以上となります。
また機会がございましたら今回作成したプログラムを以前に作成したデバッグ環境を使用して実行してみたいと思います。
[…] 今回は以前構築したFlashAirアプリ開発のためのデバッグ環境構築を使用し、前回作成したソースコードを使用し、実際にFlashAirから情報を取得してみましょう。 […]