LoginSignup
1
1

【Android】Huawei端末でカスタムIntentChooserを出さないようにする方法

Posted at

はじめに

最近中華製端末がコストパフォーマンスの高さからより一層注目されるようになってきましたね。
そんな中華製端末の中でもHuaweiはかなりの人気を誇っているかと思いますが、実はIntentChooserに"ある"パラメータを設定してしまうとHuawei独自のカスタムChooserが出てしまうという謎挙動があります。
ただ選択させておしまいであれば気にする必要もないのですが、InputSenderを利用するケース(BroadcastReceiverを使うケースなど)では大問題です。
もれなくHuawei端末だけonReceiveが呼ばれないなどの事象が発生します。
そこでこのHuawei独自のIntentChooserを表示させない方法を備忘録的にまとめておこうと思います。

IntentChooserとは?

念の為IntentChooserについて軽く触れておきます。
IntentChooserとは、暗黙的IntentによりActivityが起動される際、候補となるActivityが複数存在する場合に表示されるもので、端末ユーザーに複数の候補から起動するActivityを選んで選択可能な機能のことを指します。

Huawei独自のIntentChooserを表示させない方法

HuaweiのIntentChooserを表示させないようにするには、IntentChooserを表示する際に使用するcreateChooserの第二引数であるtitleをnullで設定する必要があります。

main.kt
// HuaweiでカスタムChooserが表示されるパターン
Intent.createChooser(intent, "テスト", intentSender)

// HuaweiでカスタムChooserが表示されないパターン
Intent.createChooser(intent, null, intentSender)

設定自体は非常にシンプルですが、何故titleを見て出しわけているのか謎ですね、、、
仕様によってはかなりの落とし穴になる可能性があるので注意していただくのが良いかと思います。

ご説明は以上です。

さいごに

今年の運動会、弁当本気出しすぎて徹夜しました、、、

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1