2013-03-14 52 views
4

這是我的Android清單文件名爲:隱含的意圖是不是在android系統

<application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" > 
     <activity 
      android:name=".view.MainActivity" 
      android:label="@string/app_name" 
      android:screenOrientation="reverseLandscape"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 


       <data 
        android:host="mocha" 
        android:path="/RTT/reset" 
        android:scheme="content" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="ihpc.mocha.fakertt.view.SessionTimeOutActivity" 
      android:label="@string/app_name" 
      android:screenOrientation="reverseLandscape"> 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 

       <category android:name="android.intent.category.DEFAULT" /> 

       <data 
        android:host="mocha" 
        android:path="/RTT/sessionTimeOut" 
        android:scheme="content" /> 
      </intent-filter> 
     </activity> 
    </application> 

這表明我已經註冊了這裏隱含的意圖

<data android:host="mocha" 
android:path="/RTT/reset" 
android:scheme="content" /> 

現在,當我把它從另一個應用程序

Intent gameInfoIntent = new Intent(Intent.ACTION_VIEW); 
       gameInfoIntent.setData(Uri.parse("content://mocha/RTT" 
         + "/reset")); 
       gameInfoIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
       PackageManager packageManager = getPackageManager(); 
       List<ResolveInfo> activities = packageManager 
         .queryIntentActivities(gameInfoIntent, 0); 
       boolean isIntentSafe = activities.size() > 0;  
       if (isIntentSafe) { 
        startActivity(gameInfoIntent); 
        finish(); 
       } else { 
       } 

它顯示沒有找到活動

"content://mocha/RTT/reset" 

我試圖調用此代碼表單相同的活動以及測試目的,但結果是相同的。

請問我在哪裏和我做什麼錯了?

UPDATE:

我能夠通過把建議代碼中的註釋呼叫會話超時活動。 我已經更新了我的表現是這樣的:

  <category android:name="android.intent.category.LAUNCHER" /> 



     </intent-filter> 

     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 

      <category android:name="android.intent.category.BROWSABLE" /> 

      <data 
       android:host="mocha" 
       android:path="/RTT/reset" 
       android:scheme="content" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name="ihpc.mocha.fakertt.view.SessionTimeOutActivity" 
     android:label="@string/app_name" 
     android:screenOrientation="reverseLandscape"> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 

      <category android:name="android.intent.category.BROWSABLE" /> 

      <data 
       android:host="mocha" 
       android:path="/RTT/sessionTimeOut" 
       android:scheme="content" /> 
     </intent-filter> 
    </activity> 
</application> 

但我仍然無法調用的主要活動。

+1

嘗試爲您的MainActivity添加''和'' – 2013-03-14 06:35:09

+0

這樣做了,這次我得到了[ResolveInfo {412a7b90 ihpc.mocha.fakertt.view.MainActivity p = 0 o = 0 m = 0x508000}],但結果是android.content.ActivityNotFoundException:找不到處理Intent的活動{ act = android.intent.action.VIEW dat = content:// mocha/RTT/reset flg = 0x10000000} – 2013-03-14 06:47:55

+0

如何將android:name =「。view.MainActivity」更改爲android:name =「view.MainActivity」? – Andrei 2013-03-15 10:18:27

回答

1

我已經通過添加以下線路解決了我的問題,我manifest文件

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 

這是我的新面貌清單文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="ihpc.mocha.rtt" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk android:minSdkVersion="12" /> 

    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:largeHeap="true" 
     android:theme="@android:style/Theme.NoTitleBar" > 
     <activity 
      android:name="ihpc.mocha.rtt.MainScene" 
      android:label="@string/app_name" 
      android:screenOrientation="reverseLandscape" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 

      </intent-filter> 
      <intent-filter> 

       <action android:name="android.intent.action.VIEW" /> 

       <category android:name="android.intent.category.DEFAULT" /> 

       <data 
        android:host="mocha" 
        android:path="/RTT/reset" 
        android:scheme="content" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="ihpc.mocha.rtt.SessionTimeOutActivity" 
      android:label="@string/app_name" 
      android:screenOrientation="reverseLandscape" > 
      <intent-filter> 
       <action android:name="android.intent.action.VIEW" /> 

       <category android:name="android.intent.category.DEFAULT" /> 

       <data 
        android:host="mocha" 
        android:path="/RTT/sessionTimeOut" 
        android:scheme="content" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

希望這將幫助其他開發商以及!