Is it possible to be able to pass a string value between two different applications?
First app:
final Bundle bundle = this.getIntent().getExtras();
final String a = bundle.getString("data");
Intent i = new Intent(Intent.ACTION_MAIN);
PackageManager manager = getPackageManager();
i = manager.getLaunchIntentForPackage("me.stuart.foodapp");
i.addCategory(Intent.CATEGORY_LAUNCHER);
Bundle extras = new Bundle();
extras.putString(a, a);
i.putExtras(extras);
startActivity(i);
Second app:
Bundle bundle = this.getIntent().getExtras();
String a = bundle.getString("data");
You can send a broadcast with data from one application to another. Broadcasts are by their nature a cross-application facility
Related
I have sample code as below for Android Java:-
public void OpenAppbyName(String appname, String user, String password) {
ComponentName componetName = new ComponentName("com.xxx","com.xxx.yyy.zzz");
Intent intent = new Intent();
intent.setComponent(componetName);
Bundle bundle = new Bundle();
bundle.putString("data", "user1" + "|" + "abc123"); intent.putExtras(bundle);
startActivity(intent);
}
May I know how can I trigger and access this link in react native?
Example something like this :=
com.xxx://com.xxx.yyy.zzz?data=user1|abc123
Please help..
Sorry if we're doing anything wrong, we just started a crash course in android and we are trying to pass a value using the bundle but it does not show any error, it only crashes after the attempt. Here is the code block below.
ps, pls feel free to edit the post if you see anything wrong with it.
Bundle b = new Bundle(); //to pass values in meals.java
b.putStringArray("breakfast1" , new String[]{breakfast1[0]});
Intent gene = new Intent(Calories.this, Days.class);
//to pass the activity in another activity
gene.putExtras(gene);
startActivity(gene);
//second.java bundle receiving code block
break1 = (TextView) findViewById(R.id.break1);
Intent gene = getIntent();
String[] break2 = gene.getStringArrayExtra("breakfast1");
break1.setText(break2[0]);
Change gene.putExtras(gene); to gene.putExtras(b); and retrieve bundle using b = getIntent().getExtras()
FirstActivity
Bundle b = new Bundle(); //to pass values in meals.java
b.putStringArray("breakfast1" , new String[]{breakfast1[0]});
Intent gene = new Intent(Calories.this, Days.class);
//to pass the activity in another activity
gene.putExtras(b); //put bundle to intent
startActivity(gene);
In Second Activity Second.java
break1 = (TextView) findViewById(R.id.break1);
Intent gene = getIntent();
Bundle b = gene.getExtras(); //get bundle from intent
String[] break2 = b.getStringArrayExtra("breakfast1"); //get array list from bundle
break1.setText(break2[0]);
replace with this.
Bundle b = new Bundle(); //to pass values in meals.java
b.putStringArray("breakfast1" , new String[]{breakfast1[0]});
Intent gene = new Intent(Calories.this, Days.class);
//to pass the activity in another activity
gene.putExtras(b); // put b not gene
startActivity(gene);
//second.java bundle receiving code block
break1 = (TextView) findViewById(R.id.break1);
Intent gene = getIntent();
String[] break2 = gene.getStringArrayExtra("breakfast1");
break1.setText(break2[0]);
Please try this
Bundle b = new Bundle();
b.putStringArray(key, new String[]{value1, value2});
Intent i = new Intent(context, Class);
i.putExtras(b);
And for receiving side
Bundle b = this.getIntent().getExtras();
String[] array = b.getStringArray(key);
Below shown is the code, i am using to get values from the intent
Bundle extras = intent.getExtras();
extras object has the follwoing information
Bundle[{message=Order #400000063 is Ready for pickup, android.support.content.wakelockid=2, collapse_key=do_not_collapse, from=552489062080, e_id=364}]
When I say
extras.getString("message");
returns null. I am not sure how to get the values ?
In your Activity1:
Intent i = new Intent(Activity1.this,Activity2.class);
i.putExtra("message", "string_value");
startActivity(i);
In your Activity2:
// do a try/catch block or check
//if getIntent().getStringExtra("message") is null
String str = getIntent().getStringExtra("string_tag");
Probably you are writing different tag name ..
Use the same tag name which you used while sending data with Intent.
while sending data if you used code as
Intent i = new Intent(Activity1.this,Activity2.class);
i.putExtra("TAG_NAME", "string_value");
startActivity(i);
then use code below as
String str = getIntent().getStringExtra("TAG_NAME");
try it...
Can i have two extra messages on Intent that i can pass on another Activity? If yes, how does it work?
this is what I did:
Intent intent3 = new Intent(this, Start.class);
String message = o.getName();
String messages = o.getPath();
intent3.putExtra(EXTRA_MESSAGE, message);
intent3.putExtra(EXTRA_MESSAGE, messages);
startActivity(intent3);`
and on the Activity that will receive the message:
Intent intent3 = getIntent();
String message = intent3.getStringExtra(Browse.EXTRA_MESSAGE);
String messages = intent3.getStringExtra(Browse.EXTRA_MESSAGE);`
You have to change the KEY:
Intent intent3 = new Intent(this, Start.class);
String message = o.getName();
String messages = o.getPath();
intent3.putExtra(EXTRA_MESSAGE, message);
intent3.putExtra(EXTRA_MESSAGE_TWO, messages);
startActivity(intent3);
Not exactly like that, but it is easy to send multiple values. The first parameter to putExtra or getStringExtra is a key into a map of values so it must be unique. As long as you use a different key for each value you can put as many as you want in the intent.
For example:
Intent intent3 = new Intent(this, Start.class);
String message = o.getName();
String messages = o.getPath();
intent3.putExtra("name", message);
intent3.putExtra("path", messages);
startActivity(intent3);
Intent intent3 = getIntent();
String message = intent3.getStringExtra("name");
String messages = intent3.getStringExtra("path");`
This is a problem the way you have them. You need separate keys for each value. So for example
intent3.putExtra("msg1", message);
intent3.putExtra("msg2", messages);
then in your receiving Activity you can get them using the above keys. But you can add as many Extra values as you want.
Two different keys and messages will do it
Intent intent3 = new Intent(this, Start.class);
String message = o.getName();
String messages = o.getPath();
intent3.putExtra(EXTRA_MESSAGE1, message);
intent3.putExtra(EXTRA_MESSAGE2, messages);
startActivity(intent3);
I need to pass information between two activities, but for some reason the information isn't sent / recieved.
LogCat doesn't give me any errors. The dubugger clearly shows something is added to the intent (variabl: mExtras), but it's hard to interpret exactly what is added. After that it gives me "source not found" and doesn't help me further.
But first things first. Am I doing things right so far?
Sending:
Intent intent = new Intent ( this, TaskListActivity.class );
intent.putExtra ( ProjectManager.ID, mId.toString () );
startActivity ( intent );
Recieving:
Intent intent = getIntent ();
mId = UUID.fromString ( intent.getStringExtra ( ProjectManager.ID ) );
add following code after intent:
Bundle extras = intent.getExtras();
String exampleString = extras.getString(ProjectManager.ID);
what is ProjectManager.ID?, you should pass same uniquekey while recieving data from putExtra even way of receiving data is wrong, check below code:
Sending:
Intent intent = new Intent ( this, TaskListActivity.class );
intent.putExtra (ProjectManager.ID, mId.toString () );
startActivity ( intent );
Recieving:
Bundle extras = intent.getExtras();
if(extras!=null){
String _Str = extras.getString(ProjectManager.ID);
}
Try This to Receive Extra:
Bundle extras = getIntent().getExtras();
String id;
if (extras != null) {
id= extras.getString(key);
}
In FirstActivity.java write these code.
Intent i = new Intent(FirstActivity.this,SecondActivity.class);
i.putExtra("KEY",value);
startActivity(i);
In SecondActivity.java:
Bundle extras=getIntent().getExtras();
String name=extras.getString("key"); //if data you are sending is String.
int i=extras.getInt("key"); //if data you are sending is integer.
To retrieve the extras in the new activity:
String valueOfExtra;
Intent i = getIntent();
//check first
if(i.hasExtra("extra1")){
valueOfExtra = i.getStringExtra("extra1");
}