Eclipseからアプリを実行するとIntentのActionが取得できない
他のアプリケーションから呼び出され起動したのか、それともアプリ単体で起動したのかを 知るためにIntent.getActionメソッドを使っている。
Intent intent = getIntent();
String actStr = intent.getAction();
if(actStr.equals(Intent.ACTION_SEND)) {
// 他のアプリからACTION_SENDで呼び出された場合の処理
}
Intent.getActionメソッドは、他のアプリケーションからACTION_SENDで呼び出された場合
「ACTION_SEND」が返り、アプリ単体で起動した場合「ACTION_MAIN」が返ってくる。
しかし上のコードを記述しEclipseからアプリを実行すると、Intent.getActionメソッドは
「null」を返し、3行目のif文でエラーになってしまう。
本体(Android)での動作には問題無いのだが開発をスムーズにする為、Intent.getActionで
nullが返る場合は空文字列を入れることにした。
Intent intent = getIntent();
String actStr = intent.getAction();
if(actStr == null) {
actStr = "";
}
if(actStr.equals(Intent.ACTION_SEND)) {
String text = intent.getStringExtra(Intent.EXTRA_TEXT);
}