[解決済み] Androidで自分だけのURIスキームを実装する方法
2022-04-23 07:28:25
質問
というようなURIを定義したいとします。
myapp://path/to/what/i/want?d=This%20is%20a%20test
は、私自身のアプリケーション、またはサービスが処理する必要があります。このスキームは
"myapp"
であって
"http"
または
"ftp"
. これはまさに私が意図していることで、Android OSのためにグローバルに独自のURIスキーマを定義することです。これは可能なのでしょうか?
これは、たとえばWindowsシステムですでに行われているSkypeなどのプログラムに類似しています(
skype://
) やトレントダウンローダープログラム (
torrent://
).
解決方法は?
これは非常に可能です。AndroidManifest.xmlでURIスキームを定義し、そのスキームを使用するために
<data>
要素を使用します。 でインテント・フィルタを設定します。
<data>
要素に記入され、独自のスキームを作成することができるようになります。 (
インテント・フィルタとインテント解決について詳しくはこちら
.)
以下に簡単な例を示します。
<activity android:name=".MyUriActivity">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="myapp" android:host="path" />
</intent-filter>
</activity>
暗黙のインテントがどのように動作するかというと、少なくともひとつのアクションとひとつのカテゴリーを定義する必要があります。ここでは、アクションとしてVIEWを選び(何でも構いませんが)、DEFAULTカテゴリーを追加するようにしました(これはすべての暗黙のインテントに必要なため)。 また、BROWSABLEというカテゴリを追加したことにも注目してください。これは必須ではありませんが、ブラウザからURIを開くことができるようになります(気の利いた機能です)。
関連
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み] Androidでアクティビティ起動時にEditTextにフォーカスが当たらないようにする方法
-
[解決済み] AndroidのListViewで画像を遅延ロードする方法
-
[解決済み] Androidで画面の大きさをピクセル単位で取得する方法
-
[解決済み] Androidアプリケーションのアクティビティ間でデータを受け渡すにはどうすればよいですか?
-
[解決済み] AndroidでstartActivityForResultを管理する方法
-
[解決済み] Intentsを使用して、あるAndroid Activityから別のAndroid Activityにオブジェクトを送信するにはどうすればよいですか?
-
[解決済み] Androidでインテントから余分なデータを取得するにはどうすればよいですか?
-
[解決済み] ファイルを変換します。AndroidでUriからファイルへ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
adb devices OffLine Solution(オフラインソリューション
-
AndroidでAttempt to invoke virtual method... on null object referenceの例外が発生する。
-
java.lang.NullPointerException: NULLオブジェクト参照で仮想メソッド......を呼び出そうとしました。
-
IllegalStateException。ArrayAdapter は、リソース ID が TextView である必要があります。
-
Android開発で「Attempt to invoke virtual method 'XXX()' on null object reference」というヌルポインター例外に遭遇する。
-
エラータイプ 3 タイプエラー, Error: アクティビティクラス{}が存在しません。アクティビティ起動時のエラー 解決方法
-
Android ProgressBarのスタイルカラーを変更する
-
超シンプルなアンドロイドのタイムディレイ機能
-
Android TextViewは、テキスト内容が表示省略記号を超えているかどうかを判断する
-
[解決済み] Android インテントの URL に応答する