我试图创建自己的url方案,所以我的android应用程序可以通过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>
有谁可以帮告诉我有什么不对? 此外,如果有人发现什么是错的,有人可以告诉我如何从我的应用程序的Android代码内读取“X”变量?
更新:
更新:我做动作的修改(如答案的一个决定),它的正常工作。问题是我仍然无法获得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
。
任何想法?
更新:
我找到了答案是,你必须要在主要活动做到这一点。
您好:感谢您的相关信息这么多。我将ACTION更改为action.VIEW,并且工作正常。唯一的是,我无法赶上url变量“X”...我试过这段代码: – Fabien 2010-10-27 07:59:05
public void onStart(){ \t super.onStart(); \t \t \t final Intent intent = getIntent(); \t final String myScheme = intent.getScheme(); \t final Bundle myBundle = intent.getExtras(); \t final boolean inContestKey; (myBundle!= null) \t \t inContestKey = myBundle.containsKey(“inContest”); final Uri myURI = intent.getData(); final String值; if(myURI!= null) \t value = myURI.getQueryParameter(“X”); 但一切都收到NULL值...我能做什么? – Fabien 2010-10-27 08:00:11
为了更好的阅读,我编辑了我的问题。 – Fabien 2010-10-27 08:05:54