三星设备自动为共享Intent设置默认应用程序

asc*_*sco 8 android android-intent samsung-mobile

我的应用程序中有一个功能,让人们分享内容.

它通常的工作方式是:

设备要求用户选择要处理的应用程序Intent.用户可以选择"只需一次"或"始终".

在一些三星设备上,例如Galaxy S6,缺少"一次性"和"总是"选项,在选择应用程序后,该应用程序成为该事件的标准.

这甚至会导致我的应用程序被新安装,在尝试共享时,根本不会询问用户,这Intent只是由用户在从其他应用程序共享时选择共享的应用程序处理的!

这里这里记录了一些三星设备的这个问题.

这是我构建我的简单意图的方式:

Intent intent = ShareCompat.IntentBuilder.from(this)
        .setSubject("mySubject")
        .setText("myText")
        .setType("text/plain")
        .setChooserTitle("myChooserTitle").getIntent();

startActivity(intent);
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "myText");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "mySubject");
sendIntent.setType("text/plain");

startActivity(sendIntent);
Run Code Online (Sandbox Code Playgroud)

我的问题是:我可以从我的代码中做任何事情来防止这种情况,或者我必须告诉我的用户下次不要购买三星吗?

asc*_*sco 13

以下解决了这个问题:

startActivity(Intent.createChooser(sendIntent, "title"));
Run Code Online (Sandbox Code Playgroud)