三星设备自动设置共享 Intent 的默认应用程序
Samsung devices automatically set default application for share Intent
我的应用程序中有一个功能可以让人们共享内容。
它通常的工作方式是:
设备要求用户选择一个应用程序来处理 Intent
。用户可以选择 'just once' 或 'always'。
在某些三星设备上,例如Galaxy S6,缺少 'just once' 和 'always' 选项,在选择应用程序后,此应用程序成为该事件的标准。
这甚至导致我的应用程序被全新安装,当尝试共享时,根本不会询问用户,Intent
仅由用户在从 [ 共享时选择共享的应用程序处理=33=]另一个应用程序!
这就是我构建简单意图的方式:
Intent intent = ShareCompat.IntentBuilder.from(this)
.setSubject("mySubject")
.setText("myText")
.setType("text/plain")
.setChooserTitle("myChooserTitle").getIntent();
startActivity(intent);
我也试过:
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);
我的问题是:我可以从我的代码中做些什么来防止这种情况还是我必须告诉我的用户下次不要购买三星?
以下解决了问题:
startActivity(Intent.createChooser(sendIntent, "title"));
我的应用程序中有一个功能可以让人们共享内容。
它通常的工作方式是:
设备要求用户选择一个应用程序来处理 Intent
。用户可以选择 'just once' 或 'always'。
在某些三星设备上,例如Galaxy S6,缺少 'just once' 和 'always' 选项,在选择应用程序后,此应用程序成为该事件的标准。
这甚至导致我的应用程序被全新安装,当尝试共享时,根本不会询问用户,Intent
仅由用户在从 [ 共享时选择共享的应用程序处理=33=]另一个应用程序!
这就是我构建简单意图的方式:
Intent intent = ShareCompat.IntentBuilder.from(this)
.setSubject("mySubject")
.setText("myText")
.setType("text/plain")
.setChooserTitle("myChooserTitle").getIntent();
startActivity(intent);
我也试过:
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);
我的问题是:我可以从我的代码中做些什么来防止这种情况还是我必须告诉我的用户下次不要购买三星?
以下解决了问题:
startActivity(Intent.createChooser(sendIntent, "title"));