Я пытаюсь создать свою собственную схему URL-адресов, чтобы мое приложение Android могло получить вызов через URL-адрес, но пока я не добился успеха.
Я пытаюсь использовать этот url: cedemo://com.cedem.scan? X = toto
Вот часть моего файла манифеста:
<activity android:name=".Gallery1" android:label="@string/app_name" android:launchMode="singleTask" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.GALLERY" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="cedemo" android:host="com.cedemo.scan" />
</intent-filter>
</activity>
Кто-нибудь может помочь мне сказать, что не так? Кроме того, если кто-то найдет то, что не так, может кто-нибудь сказать мне, как я читаю переменную "X" из кода Android из моего приложения?
Update:
Обновление: я сделал модификацию действия (как было сказано в одном из ответов), и он работал нормально. Дело в том, что я все еще не могу получить значение переменной url. Вот код, который я пробовал.
final Intent intent = getIntent();
final String myScheme=intent.getScheme();
final Bundle myBundle=intent.getExtras();
final boolean inContestKey;
if (myBundle != null) {
inContestKey=myBundle.containsKey("inContest");
}
final Uri myURI=intent.getData();
final String value;
if (myURI != null) {
value = myURI.getQueryParameter("inContest");
}
Но я получаю null
от всех функций... что еще я могу сделать?
Может быть, я должен лучше объяснить контекст моего программного обеспечения:
- Запущено мое программное обеспечение.
- Мой запуск программного обеспечения, затем браузер
- пользователь нажимает ссылку в браузере, а браузер переходит к схеме URL-адресов, обратно к программному обеспечению с переменной "X" (например)
- программное обеспечение должно читать переменную "X"
Но в моем случае: myScheme
, myBundle
, myURI
установлены null
.
Любые идеи?
Update:
Я нашел ответ, что вы должны быть в основном для этого.