What is the easiest way to pass string variables from one application to another and also return values back ? I have access to the source code of both applications, but it should be two different applications.
I tried with startActivityForResult, but this only seems to work between actions of the same application. When invoking an operation from another package, startActivityForResult immediately returns RESULT_CANCELED. It seems there is an opportunity to resolve this using the Service, but is it not too simple for some lines?
Is there a simple and clean way to do this?
Here is the code I tried to use for startActivityForResult:
//App A: Intent intent = new Intent(); intent.setAction("com.example.testapp.MESSAGE"); Bundle b = new Bundle(); b.putString("loginToken", "263bhqw3jhf6as4yf8j0agtz8h2hj2z9j3hg3g3ggh34uzh2h2ui78h3i9wdnj89x"); intent.putExtra("MyData", b); startActivityForResult(intent, TEST_REQUEST); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d("pairing", "onActivityResult called"); // Check which request we're responding to if (requestCode == TEST_REQUEST) { // Make sure the request was successful Log.d("pairing", "got result, resultCode: " + resultCode); if (resultCode == RESULT_OK) { // The Intent data Uri identifies which contact was selected. if (data.hasExtra("returnMessage")) { Toast.makeText(this, data.getExtras().getString("returnMessage"), Toast.LENGTH_LONG).show(); } } } } // App B: Intent result = new Intent(); Bundle b = new Bundle(); b.putString("returnValue", "this is the returned value"); result.putExtra("MyData", b); setResult(Activity.RESULT_OK, result); Log.d("pairing", "RESULT_OK set"); finish(); //App B Manifest <activity android:name="com.example.testapp" android:launchMode="singleTop" android:screenOrientation="portrait" android:windowSoftInputMode="adjustPan" > <intent-filter> <action android:name="com.example.testapp.MESSAGE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter></activity>
Does anyone see a mistake? Appendix B always returns immediately with RESULT_CANCELED
EDIT: Right now, I am getting android.content.activitynotfoundexception. No activity was found to process the intent {act = com.example.testapp.MESSAGE (has additional features)}. What am I doing wrong?
source share