2011-02-18 66 views
1

我試着編碼它,我試着解決它與谷歌和stackoverflow,沒有發現:=)所以希望別人有一個更好的主意,我不知道如果我得到一切正確的:從發射器中刪除但保持啓用/啓動

我有2個應用程序:廣告(主要的應用程序)/ adfree-PRO(只是許可證啓動廣告應用程序不會受到廣告; P)

所以問題是,我想有一個專業版(與Pro圖標)在啓動普通廣告應用程序的啓動程序,這是正常的廣告應用程序不在啓動器中。

我試圖從發射移除廣告的應用程序(這是由於我的研究應該只從啓動器中刪除它)

pkgMgr.setComponentEnabledSetting(新組件名稱(PACKAGE_NAME,PACKAGE_NAME +「主要」 ), PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP);

哪些結果:啓動器中的圖標是正確的;)應用程序無法在手機上找到,啓動,啓動後,即使不與發射親活動的快捷方式。它似乎在那裏(快捷方式可以創建),但我嘗試啓動時崩潰了一個活動異常。

02-18 14:38:59.237:ERROR/AndroidRuntime(9941):android.content.ActivityNotFoundException:致無法找到明確的活動類{PACKAGE_NAME/PACKAGE_NAME.Main};你有沒有在你的AndroidManifest.xml中聲明這個活動?

這似乎並不屬於(錯誤消息) 它看起來像有發生更多的不僅僅是簡單地刪除啓動器中的條目中的應用。

非常感謝球員, 每一個變通方法對於這種情況感激:) 問候:)

回答

0

不能安裝應用程序,並隱藏它的啓動圖標。我用我的應用程序處理它的方式與您的應用程序類似,我不試圖與圖標對戰,而是可以使用以太網圖標啓動應用程序。顯然,你沒有在main(免費),應用程序和啓動應用程序從您的親圖標看起來類似的代碼來執行以下操作:

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle bundle) { 
    super.onCreate(bundle); 
    // check if main app is installed. If yes then start it 
    if (appExists()) { 
     Log.d(TAG, "Started main app from Pro"); 
     Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("myapp://com.myapp.main")); 
     startActivity(intent); 
     finish(); 
    } else { 
     // display view with link back to Market 
     onAppNotExists(); 
    } 
} 

它是由你來實現appExists()這可能是一些這類許可證的檢查

當然,或者你可以開發你的應用程序的通用代碼爲library project然後而非複製代碼

+0

謝謝你確認我的想法。直到現在我已經隱藏了專業版圖標,它完美的工作,發射器只顯示1個圖標,但現在我想顯示他們正在使用的用戶(並讓他們意識到好處;))專業版,所以它似乎,爲了讓他們有可能使用一個單獨的專業圖標,2個圖標是不可避免的。 所有其他:摘要:隱藏許可證應用程序作品;) 隱藏主應用程序。犯規。 感謝您的迴應! – cV2 2011-02-18 23:05:27

0

應用它2種味道散發無法在手機上找到,啓動,開始, 甚至沒有啓動專業版活動快捷方式。

不適用,但活動。

因此,如果您LAUNCHER活動BaseActivity,您可以創建類似BaseFakeActivity(不要忘了在你的清單將其設置爲LAUNCHER,而不是你的BaseActivity)和其唯一功能是啓動BaseActivity然後finish()本身。

現在你可以隱藏你的BaseFakeActivity,但你仍然可以與你的BaseActivity互動。

P.S .:不要忘了用這種方式做事後測試你的應用的行爲;)

+0

嘿人,非常感謝,..聽起來不錯..現在做一些重構..聽起來像一個完美的計劃,會給你一些反饋,並在我準備好時接受你的答案:)計劃今晚... :) – cV2 2013-02-09 09:00:57

相關問題