自定义方案似乎并没有推出应用程序的意图 [英] Custom scheme doesn't seem to launch in the app intent

查看:132
本文介绍了自定义方案似乎并没有推出应用程序的意图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个Android应用程序,需要使用OAuth认证(与谷歌Wave数据API)

I'm trying to create an Android app that needs to use OAuth to authenticate (with the Google Wave data API)

我指定我的Andr​​oidManifest.xml ,以便任何意见,以一个URL开始题库://自定义方案应该去我的应用程序:

I've specified a custom scheme in my AndroidManifest.xml so that any views to a url beginning "braindump://" should go to my app:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.enigmagen.braindump"
    android:versionName="0.1"
    android:versionCode="1">

    <uses-sdk android:minSdkVersion="7"></uses-sdk>
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>

    <application
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:debuggable="true">

        <activity
            android:name=".BrainDump"
            android:label="@string/app_name"
            android:launchMode="singleInstance">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="braindump" />
            </intent-filter>

        </activity>

    </application>

</manifest>

所有这一切发生的是,虽然重定向后,在浏览器的地址显示了正确的URL,但页面内容

All that happens though is that after the redirect, the browser address shows the correct URL, but the page content is

您没有权限打开此页面。    题库:// rest_of_address_here

You do not have permission to open this page. braindump://rest_of_address_here

有没有需要被设置为允许这种行为的特定权限?

Is there a specific permission that needs to be set to allow this sort of behaviour?

推荐答案

我有完全相同的问题(的OAuth),而且这是我的固定它。

I had the exact same problem (OAuth) and this is how I fixed it.

我已经分开我主要从将作用于URI的类。

I've separated my Main from the class that will act on the URI.

这里是AndroidManifest.xml中应该是什么样子:

Here's how the AndroidManifest.xml should look like:

<?xml version="1.0" encoding="utf-8"?>

[snip]

          <activity android:label="@string/app_name" android:name="MainActivity">
           <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
           </intent-filter>
          </activity>
          <activity android:label="@string/app_name" android:name="OAUTHActivity">
           <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="myscheme" android:host="oauth" />
           </intent-filter>
          </activity>
         </application>

    [/snip]

和我能打开的URI像 myscheme // OAuth的oauth_verifier = XXX和放大器; oauth_token = YYY

And I was able to open URIs like myscheme//oauth?oauth_verifier=xxx&oauth_token=yyy

这篇关于自定义方案似乎并没有推出应用程序的意图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆