A Microsoft open-source framework for building native device applications spanning mobile, tablet, and desktop.
the name in your definition in the android manifest file is different to the one in your action. android:name="myamazijng.shareactivity"
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Hi,
I'm trying to respond to Android Share Intents. I'm wondering what I'm doing wrong. I've started a new MAUI app in Visual Studio (latest version of MAUI, latest preview of VS as of August 15 2022).
In the AndroidManifest.xml file, I have defined the activity:
<activity
android:exported="true"
android:name="myamazijng.shareactivity" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
</activity>
Then my activity is defined as follows:
[Activity(Name = "myamazing.shareactivity", Exported = true)]
public class ShareActivity : MauiAppCompatActivity
{
protected override void OnCreate(Bundle? savedInstanceState)
{
base.OnCreate(savedInstanceState); //throws Exception
if (Intent.Type == "text/plain")
{
}
}
A share intent is succesfully registered on the Android emulator. But clicking on it throws a NullReferenceEception in the call to base.OnCreate..
Digging into the Exception, it's thrown here in Microsoft.Maui.Controls at Microsoft.Maui.Controls.Platform.Compatibility.ShellToolbarTracker.OnToolbarPropertyChanged(Object sender, PropertyChangedEventArgs e) . ShellToolbarTracker.cs:line 58
Am I doing this incorrectly, or have I run into a bug? Is there a workaround?
A Microsoft open-source framework for building native device applications spanning mobile, tablet, and desktop.
the name in your definition in the android manifest file is different to the one in your action. android:name="myamazijng.shareactivity"
Hello,
I've tested your sample, and found a workaround. You could try the following steps:
Step1. Create a new Activity class file, such as ShareActivity.cs in the Platforms/Android/ folder.
Step2. Copy your ShareActivity class into this ShareActivity.cs, then, please add the following code for your Activity:
[Activity(Theme = "@style/Maui.SplashTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize | ConfigChanges.Density, ScreenOrientation = ScreenOrientation.Portrait)]
[IntentFilter(new[] { Intent.ActionSend }, Categories = new[] { Intent.CategoryDefault }, DataMimeType = "text/plain")]
public class ShareActivity : MauiAppCompatActivity
Note: The Intent object is in the Android.Content namespace.
After that, you could see the AlertDialog to input your url link.
Best Regards,
Alec Liu.
If the answer is the right solution, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.