19

多くの人がこれを試したかどうかはわかりませんが、ユーザーが受信した SMS のリンクをタップする必要があるアプリを構築しようとしています。これにより、Android アプリが起動します。アンドロイドでできますか?はいの場合、どうすればこれを行うことができますか? これはIOSで実行できることを知っています。提案やヘルプをいただければ幸いです。ありがとうございました。

4

3 に答える 3

13

マニフェストで、メッセージング アプリでクリックされたリンクからの受信データを処理するアクティビティの下で、次のように定義します。

<activity android:name=".SomeActivityName" >

    <intent-filter>
        <category android:name="android.intent.category.DEFAULT" />
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="com.your_package.something" />
    </intent-filter>

</activity>

android:scheme=""アクティビティがこれを含むすべてのデータに反応することを保証するものは次のとおりです。

<data android:scheme="com.your_package.something" />

( Name used as a illustration. もちろんSomeActivityName独自のものを使用します :-) ) では、次のようなチェックを実行できます。

Uri data = getIntent().getData();
String strData = data.toString();
if (strScreenName.equals("com.your_package.something://"))  {
    // THIS IS OPTIONAL IN CASE YOU NEED TO VERIFY. THE ACTUAL USAGE IN MY APP IS BELOW THIS BLOCK
}

私のアプリの同様の使用法:

Uri data = getIntent().getData();
strScreenName = data.toString()
        .replaceAll("com.some_thing.profile://", "")
        .replaceAll("@", "");

これを使用して、アプリ内の Twitter @usernameリンクのクリックを処理します。さらに処理するためにユーザー名を取得するには、com.some_thing.profile://とを取り除く必要があります。@マニフェスト コードはまったく同じです (nameschemeが変更されているだけです)。

于 2013-04-21T04:32:57.260 に答える
5

アプリを起動する形式に従うリンクをリッスンするインテント フィルターをアプリに追加します。

ただし、これはグローバル リスナーになり、SMS アプリの外部でも形式に適合するすべてのリンクがアプリをトリガーします。したがって、ユーザーが Web ブラウザーで同様のリンクをタップすると、アプリはそれに応答しようとします。

さらに、このリンクを処理できる別のアプリがある場合、Android は、ユーザーが使用したいアプリを選択できるようにするセレクターを作成します。これについてできることは何もありませんが、アプリをそのようなリンクのデフォルト ハンドラーにすることをユーザーに提案する以外はありません。

于 2013-04-21T04:14:58.600 に答える