Я пытаюсь создать свою собственную схему URL, чтобы мое приложение для Android можно было вызывать через URL, но сейчас у меня нет успеха.
Я пытаюсь заставить работать этот URL: cedemo: // com.cedemo.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 из моего приложения?
Обновление:
Обновление: я сделал модификацию действия (как советовали в одном из ответов), и оно работало нормально.Дело в том, что я до сих пор не могу получить значение переменной 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
.
Есть идеи?
Обновление:
Я нашел ответ, что у вас естьбыть в основной деятельности, чтобы сделать это.