Mevcut etkinlik ve/veya ana uygulamasıyla ilişkili logoyu manifest'teki tanımdan yüklemeye çalışıyorum. Bu teknik zaten hem ilişkili başlık ve simge yükleme başarılı şekilde çalışmış, ancak logosu hep null
ya da BuradanYük Aktivitesi ve/veya Uygulama Logosu Programatik Olarak Manifest ile
0 döndüren I ile Manifest'ten ilgili bilgi çalışıyorum edilir:
<application
android:icon="@drawable/ic_launcher"
android:logo="@drawable/ad_logo"
android:label="@string/app_name"
android:hardwareAccelerated="true">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:logo="@drawable/ad_logo">
activity
yukarıda tanımlı etkinliğin bir örneği olma, ben şu (sonuçlar açıklamalı inline) denedim:
PackageManager pm = activity.getPackageManager();
ComponentName cn = activity.getComponentName();
ApplicationInfo ai = activity.getApplicationInfo();
//ACTIVITY LABEL: Works
pm.getActivityInfo(cn, PackageManager.GET_ACTIVITIES).loadLabel(pm);
//APPLICATION LABEL: Works
ai.loadLabel(pm);
//APPLICATION LABEL: Works
pm.getApplicationLabel(ai);
//ACTIVITY ICON: Works
pm.getActivityInfo(cn, PackageManager.GET_ACTIVITIES).loadIcon(pm);
//ACTIVITTY ICON: Works
pm.getActivityIcon(cn);
//APPLICATION ICON: Works
pm.getApplicationIcon(ai);
//APPLICATION ICON: Works
ai.loadIcon(pm);
//ACTIVITY LOGO: Does not work
pm.getActivityInfo(cn, PackageManager.GET_ACTIVITIES).loadLogo(pm);
//ACTIVITY LOGO: Does not work
pm.getActivityInfo(cn, PackageManager.GET_ACTIVITIES).logo
//ACTIVITY LOGO: Does not work
pm.getActivityLogo(cn);
//APPLICATION LOGO: Does not work
pm.getApplicationLogo(ai);
//APPLICATION LOGO: Does not work
pm.getApplicationLogo(activity.getApplication().getPackageName());
//APPLICATION LOGO: Does not work
ai.loadLogo(pm);
//APPLICATION LOGO: Does not work
pm.getApplicationInfo(ai.packageName, 0).loadLogo(pm);
//APPLICATION LOGO: Does not work
ai.logo;
kimse doğru bu targ birinde veya her ikisinde için logosunu yüklemek için nasıl biliyor mu ets?
düzenlemek: Logo destek API düzeyi 9. gerektirir Üzerinde test ediyorum cihazlar emülatörleri Fiziksel cihazları Bu kod 3.0+ idam asla tüm koşuyoruz API seviyesi 10. vardır.
Şu anda test edemiyorum, ancak aktivitede bir 'android: logo' olması belki de bir problem mi? Bir etkinlik niteliği değil, bir uygulama niteliğidir. İkincisini çıkarmayı dene. – Aleadam
@Aleadam [spesifikasyon] 'da tanımlanmadığını fark ettim (http://developer.android.com/guide/topics/manifest/activity-element.html) ancak bu yöntem logosunu yüklemek için var. [Google'ın kendi örneklerinde] kullanılmıştır (http://code.google.com/p/styled-action-bar/source/browse/trunk/AndroidManifest.xml). Ben test edeceğim. –
yöntemi fin, manifestodan bahsediyorum. Aşağıda biraz daha yayınlayacağım (yorum sınırlamalarına dayanan) – Aleadam