質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

2306閲覧

アプリ側から接続中のPCにファイルを送信したい

arumazirou

総合スコア1

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2020/07/31 01:50

編集2020/07/31 02:17

前提・実現したいこと

プログラミング初心者です。

アプリ内で作成したJSONファイルを接続中のPCのローカルディスク下のtmpフォルダに送信し、その後PC側から受け取ったJSONファイルの内容をListViewに表示するというアプリを作成していますが、android側からPC側へのファイル送信方法が分からず作業の進捗が止まっている状態です。
android端末とPCはbluetoothで接続している状態です。

どなたかご教授いただければ幸いです。

発生している問題・エラーメッセージ

エラーメッセージ

該当のソースコード

package com.example.bearingcheck4; import androidx.annotation.RequiresApi; import androidx.appcompat.app.AppCompatActivity; import android.app.Activity; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.GridView; import android.widget.TextView; import org.json.JSONArray; import org.json.JSONException; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; @RequiresApi(api = Build.VERSION_CODES.O) public class MainActivity extends AppCompatActivity { ProgressDialog progressDialog; Thread thread; //表示データ関連 private static final int REQUEST_ENABLE_BLUETOOTH = 1; private static final int READ_REQUEST_CODE = 1; private String engin_type; private String engin_Engraving; public MainActivity() { } //今日の日付 LocalDateTime date = LocalDateTime.now(); DateTimeFormatter dtformat = DateTimeFormatter.ofPattern("HH時mm分ss秒"); String fdate = dtformat.format(date); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 外部ファイルの選択ダイアログを表示 Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); intent.setType("*/*"); startActivityForResult(intent, READ_REQUEST_CODE); } @Override public void onActivityResult(int requestCode, int resultCode, Intent resultData) { super.onActivityResult(requestCode, resultCode, resultData); //ダイアログ画面から結果を受けた後の処理を記述 try { // ダイアログの応答結果が正常の場合 if (requestCode == READ_REQUEST_CODE && resultCode == Activity.RESULT_OK) { if (resultData != null) { // 選択したファイルのURIを取得 Uri uri = resultData.getData(); // JSONファイルの読み込み final JsonReader jsonReader = new JsonReader(); jsonReader.reader(getApplicationContext(), uri); // 処理対象番号の初期化 // 処理対象番号 int targetNumber = 0; // 最大アイテム数の取得 // 最大アイテム数 int maxItemSize = jsonReader.jsonList.size(); // Viewに処理対象の情報を設定 final ArrayList<ListData> jsonList = jsonReader.jsonList; final gridViewAdapter gridViewAdapter = new gridViewAdapter(this, 0, jsonList); // エンジン名の設定 StringBuilder sb = new StringBuilder(); StringBuilder sb2 = new StringBuilder(); sb.append(jsonReader.engin_type); engin_type = new String(sb); sb2.append(jsonReader.engin_Engraving); engin_Engraving = new String(sb2); // エンジン名 String engin_name = new String(sb); TextView engine_name = findViewById(R.id.engine_name); engine_name.setText(engin_name); // 一覧(engineType)を生成 GridView gridView = findViewById(android.R.id.list); gridView.setAdapter(gridViewAdapter); } } } catch (Exception e) { e.printStackTrace(); } Button button = this.findViewById(R.id.toNext); progressDialog = new ProgressDialog(this); // ボタンにクリックイベントをセット button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this); builder.setTitle("確認"); builder.setMessage("次の型に移行しますか?"); builder.setPositiveButton("はい", new DialogInterface.OnClickListener() { @Override // progressDialogの表示 public void onClick(DialogInterface dialog, int which) { progressDialog.setMessage("待機中"); progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); progressDialog.show(); thread = new Thread(String.valueOf(this)); thread.start(); // 型式確認後の処理 // 確認報告をJSONFileにしてPC側に送信 try { JSONArray jary = new JSONArray(); jary.put("型式:" + engin_type); jary.put("製造番号:" + engin_Engraving); jary.put("確認完了"); String data = jary.toString(4); // 作成したJSONをファイル出力 FileOutputStream outStream = openFileOutput("BearingResult." + fdate + ".json", MODE_PRIVATE); OutputStreamWriter writer = new OutputStreamWriter(outStream); writer.write(data); writer.flush(); writer.close(); outStream.close(); } catch (JSONException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } // 作成したファイルをbluetooth接続中のPCのC:\tempに送信 // 送信後にPC側からファイルの受け取り // PC側からファイルが送られてこなかった場合の処理 // progressDialogを閉じる progressDialog.dismiss(); } }); builder.setNegativeButton("いいえ", null); builder.show(); } }); } }

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

AndroidStudio4.0.0, Java

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

あなたの考えるファイルを送信するってことはできません
PC側がandroidのファイルを受信、あるいは、読み出す、というふうにしましょう

投稿2020/07/31 04:28

y_waiwai

総合スコア87784

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

arumazirou

2020/08/01 04:10

回答ありがとうございます。 ファイル単体をタブレット側から送信することは出来ないのですね。まだまだ理解が足りませんでした。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問