Android開発記録雑記 -18ページ目

Android開発記録雑記

パソコン中級者ぐらいの私が
スマホアプリの開発をしてみようと思い立ち
Androidで動くアプリ開発過程をこれから書き記していきます。

今回は3つ目の項目 Allowing Other Apps to Start Your Activity
です。

前回は情報を送る側の処理でしたが
今回は送られた側としての処理の方法です。


まずマニフェストファイルに追加します。
対応する
 アクション
  ACTION_SEND 
または ACTION_VIEW など対応させる動作
 データ
  
インテントに関連付けられたデータ形式
 カテゴリ

  インテントの追加情報。通常は CATEGORY_DEFAULT
を追加します。

例)テキストか画像データであるACTION_SEND処理のインテント定義
<activity android:name="ShareActivity">
    <intent-filter>
        <action android:name="android.intent.action.SEND"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <data android:mimeType="text/plain"/>
        <data android:mimeType="image/*"/>
    </intent-filter>
</activity>


CATEGORY_DEFAULT を指定しないと暗黙インテントに対応できません。
とあります、ってことは指定をはずせば
暗黙インテントから意図的にはずす事も可能のなのか?


実際に受け取る処理はこんな感じです。
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Intent intent = getIntent();
    Uri data = intent.getData();
    if (intent.getType().indexOf("image/") != -1) {
   画像の場合の処理
    } else if (intent.getType().equals("text/plain")) {
   テキストの場合の処理
    }
}


そして結果を返す処理
Intent result = new Intent("com.example.RESULT_ACTION",Uri.parse("content://result_uri");
リザルトコードと返すインテントを渡します
setResult
(Activity.RESULT_OK, result);
finish();



アプリ間のやり取りをシステムでフォローしてるのはとても便利だと思います
ただ、

最近問題になってる情報抜き取りアプリも
この機能悪用してるんでしょうかね?

なのでセキュリティ面での強化を期待したいところです。

本日はこれまでー。