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

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

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

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

Q&A

0回答

960閲覧

Androidアプリ間での値の共有について

Shig

総合スコア16

Android

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

0グッド

0クリップ

投稿2020/06/09 04:39

編集2020/06/09 05:15

Androidアプリ間での値の共有についてお聞きしたいです。

アプリAで保存した値(Tokenの様な文字列)を別のアプリBで取得したい場合に、明示的Intentを使って取得するのは変でしょうか?

一応以下の様に仮で実装をしてみて動作することは確認できました。

アプリA(提供側):
パッケージ名:"com.example.testsettingprovidor"
クラス名:"com.example.testsettingprovidor.TokenProvideActivity"
値をIntentに載せてすぐに返して閉じるActivity

Java

1 2 @Override 3 protected void onCreate(Bundle savedInstanceState) { 4 super.onCreate(savedInstanceState); 5 SharedPreferences sp = getSharedPreferences(getPackageName(), MODE_PRIVATE); 6 String token = sp.getString(KEY_SHARED_PREF_TOKEN, null); 7 if(token!=null){ 8 Intent intent = new Intent(); 9 intent.putExtra(MainActivity.KEY_SHARED_PREF_TOKEN,token); 10 setResult(RESULT_OK, intent); 11 }else{ 12 setResult(RESULT_CANCELED); 13 } 14 finish(); 15 }

アプリB(取得側):
button_getというIDのボタンを押すと値をアプリAから取得してtext_displayというIDのTextViewにセットする

Java

1 @Override 2 protected void onCreate(Bundle savedInstanceState) { 3 super.onCreate(savedInstanceState); 4 setContentView(R.layout.activity_main); 5 Button button = findViewById(R.id.button_get); 6 button.setOnClickListener(new View.OnClickListener() { 7 @Override 8 public void onClick(View v) { 9 Intent intent = new Intent(Intent.ACTION_SEND); 10 intent.setClassName("com.example.testsettingprovidor", 11 "com.example.testsettingprovidor.TokenProvideActivity"); 12 startActivityForResult(intent,REQUEST_GET_TOKEN); 13 } 14 }); 15 } 16 17 @Override 18 protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { 19 super.onActivityResult(requestCode, resultCode, data); 20 if(requestCode==REQUEST_GET_TOKEN){ 21 if(resultCode == RESULT_OK){ 22 TextView text_display = findViewById(R.id.text_display); 23 String token = data.getStringExtra(KEY_SHARED_PREF_TOKEN); 24 text_display.setText(token); 25 } 26 } 27 } 28

何か他に公式なAPIなどはないのでしょうか?
調べてみたのですが見つけられなくて既存の知識だけで実装したので不安です。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問