getApplicationBanner返回null

时间:2018-10-08 07:03:57

标签: android android-tv android-launcher

我正在为一个setupbox开发自定义的android启动器,并尝试使用以下方法获取电视应用程序的横幅广告(如下图所示) packageInfo.applicationInfo.loadBanner(context.getPackageManager()); 要么 context.getPackageManager().getApplicationBanner(packageName)

Android tv apps 它适用于大多数应用程序,但是其中一些返回结果为null,例如Google Play Games,尽管我可以获得图标(即旁边没有文本的徽标)。

我使用的是正确的api吗?反正有通过编程获得它的方法吗?

2 个答案:

答案 0 :(得分:1)

我也有这个问题。应用开发者之所以没有将横幅广告附加到程序包上,是因为他们将横幅广告附加到了活动上。

示例:

glob('folder/*.js', function (err, files) { 
    if (err) { 
        console.log(err); 
    }

    var allfiles = files;

    // Uploads VM local dir files  to the bucket
   storage
  .bucket(bucketName)
  .upload(allfiles)
  .then(() => {
    console.log(`${allfiles} uploaded to ${bucketName}.`);
  })
  .catch(err => {
    console.error('ERROR:', err);
  });'  
});

每个软件包都可以进行很少的启动活动。因此,您需要先尝试为活动加载横幅,然后<?xml version="1.0" encoding="utf-8" standalone="no"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="ru.tv1.android.tv"> ...... <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:name="ru.kino1tv.android.tv.App" android:supportsRtl="true" android:theme="@style/AppTheme.Leanback"> <activity android:banner="@drawable/app_icon_banner" android:icon="@drawable/app_icon_banner" android:label="@string/app_name" android:logo="@drawable/app_icon_banner" android:name="ru.kino1tv.android.tv.ui.activity.MainActivity" android:screenOrientation="landscape"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LEANBACK_LAUNCHER"/> </intent-filter> <meta-data android:name="android.app.searchable" android:resource="@xml/searchable"/> <intent-filter> <action android:name="android.intent.action.SEARCH"/> </intent-filter> </activity> ...... </application> </manifest> 尝试为活动加载横幅。

null

答案 1 :(得分:0)

摘自getApplicationBanner方法的文档:

  

在API级别20中添加

     

公共抽象Drawable getApplicationBanner(字符串packageName)

     

检索与应用程序关联的标语。给定名称   应用程序的程序包,检索有关它的信息,然后   呼叫getApplicationIcon() 返回其横幅广告。如果申请   找不到,抛出NameNotFoundException

您的函数还应该在调用getApplicationIcon方法之后调用getApplicationBanner以返回其标语。