前提・実現したいこと
プログラム初心者です。
アプリA(送信側)で作成したIntentをブロードキャストで、
アプリB(受信側)に送信する。やり方を教えて下さい。
サンプルソースコード
アプリA(送信側)
MainActivity.java
package com.intent.send; import android.app.Activity; import android.content.Intent; import android.graphics.Color; import android.os.Bundle; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.LinearLayout; public class MainActivity extends Activity implements View.OnClickListener{ private final static int WC = ViewGroup.LayoutParams.WRAP_CONTENT; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout layout = new LinearLayout(this); layout.setBackgroundColor(Color.WHITE); layout.setOrientation(LinearLayout.VERTICAL); setContentView(layout); Button button = new Button(this); button.setText("テストボタン"); button.setOnClickListener(this); button.setLayoutParams(new LinearLayout.LayoutParams(WC,WC)); layout.addView(button); } @Override public void onClick(View v) { Log.i("MainActivity", "Intent送信"); Intent intent = new Intent("send.intent.eeception.MyReceiver"); intent.putExtra("TEXT", "ブロードキャストテスト"); sendBroadcast(intent); } }
アプリA(送信側)
AndroidManifest.xml
<receiver android:name="com.intent.eeception" android:enabled="true" android:exported="true"> <intent-filter> <action android:name="send.intent.eeception.MyReceiver"/> </intent-filter> </receiver>
アプリB(受信側)
MyReceiver.java
package com.intent.eeception; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { String text = intent.getStringExtra("TEXT"); Log.i("MyReceiver","取得した文字列は:" + text); } }
###補足
android:name="com.intent.eeception"のeeceptionが赤文字で表示されます。
###開発環境
Android Studio 3.2
あなたの回答
tips
プレビュー