我正在尝试将App A的MainActivity中的意图发送到App B的MainActivity,然后将App B带到前面,但在启动App A时,我收到以下错误:
引起:android.content.ActivityNotFoundException:无活动 发现处理Intent {act = com.example.app.MainActivity pkg = com.example.app(有额外内容)}
首先,我正在启动App B,然后启动App A.
如何将应用A的MainActivity中的意图发送到应用B的MainActivity,然后将应用B带到前端?
App A MainActivity:
package com.mysender;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String pdfString = "Hello World";
final Intent intent= new Intent("com.example.app.MainActivity");
intent.setPackage("com.example.app");
intent.putExtra("path", pdfString);
startActivity(intent);
}
}
App A Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.mysender">
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
App B MainActivity:
package com.example.app;
import android.app.Activity;
import android.os.Bundle;
public class MainActivity extends Activity {
private WebView mWebView;
//private BroadcastReceiver myReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Bundle data = getIntent().getExtras();
if(data!=null){
String myString = data.getString("Id");
Toast.makeText(this,"Data Received from External App: " , Toast.LENGTH_SHORT).show();
}
}
App B Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<activity
android:name="com.example.app.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
错误:
引起:android.content.ActivityNotFoundException:无活动 发现处理Intent {act = com.example.app.MainActivity pkg = com.example.app(有额外内容)}
final Intent intent= new Intent("com.example.app.MainActivity");
intent.setPackage("com.example.app");
intent.putExtra("path", pdfString);
startActivity(intent);
引起:android.content.ActivityNotFoundException:无法找到 显性活动类 {com.example.app/com.example.app.MainActivity};你宣布这个吗? AndroidManifest.xml中的活动?
final Intent intent= new Intent();
intent.setComponent(new ComponentName("com.example.app", "com.example.app.MainActivity"));
intent.putExtra("path", pdfString);
startActivity(intent);
修改
我已将清单B更改为以下内容:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app" >
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="com.mysender.Data"/>
</intent-filter>
</activity>
</application>
</manifest>
App A的MainActivity:
包com.mysender;
import android.content.Intent; import android.os.Bundle;
公共类MainActivity扩展了AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String pdfString = "Hello World";
final Intent intent= new Intent("com.example.app.MainActivity");
intent.setPackage("com.example.app");
intent.setAction("com.mysender.Data");
intent.putExtra("path", pdfString);
startActivity(intent);
}
}
但我仍然收到错误:
引起:android.content.ActivityNotFoundException:无活动 发现处理Intent {act = com.mysender.Data pkg = com.example.app (有额外的)}