如何在启动器图标中添加像活动快捷方式一样的像素?

时间:2017-11-17 06:46:14

标签: java android android-layout android-studio

自像素系列发布以来,已有此功能通过长按图标在应用程序图标本身中添加活动快捷方式。我一直在尝试找出一种特殊的方法,通过它可以实现这些快捷方式,使应用程序更具交互性和用户友好性。 shortcut screen

2 个答案:

答案 0 :(得分:2)

  

如何在启动器图标中添加像活动快捷方式一样的像素?

此选项可从Oreo版本的android

获得

按照以下步骤在启动器图标

中创建活动快捷方式
  
      
  • 在您应用的清单文件(AndroidManifest.xml)中,找到其意图过滤器设置为android.intent.action.MAIN操作和android.intent.category.LAUNCHER类别的活动。

  •   
  • 向此活动添加<meta-data>元素,该元素引用定义应用程序快捷方式的资源文件:

  •   
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.myapplication">
  <application ... >
     <activity
        android:name=".activity.TempActivity"
        android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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


        <meta-data android:name="android.app.shortcuts"
            android:resource="@xml/shortcuts" />

    </activity>
  </application>
</manifest>
  
      
  • 创建新资源文件:res/xml/shortcuts.xml.
  •   

在此新资源文件中,添加一个根元素,其中包含元素列表。反过来,每个元素都包含有关静态快捷方式的信息,包括其图标,描述标签以及它在应用程序中启动的意图:

<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">

    <shortcut
        android:enabled="true" // make sure shortcut is enabled true
        android:icon="@drawable/ic_check" // set icon here
        android:shortcutDisabledMessage="@string/collections" // message when shortcut is  disabled
        android:shortcutId="prem" // you need to give unique shortcutId
        android:shortcutLongLabel="@string/collections" // long lable for shortcut
        android:shortcutShortLabel="@string/collections">// short lable for shortcut
        <intent
            android:action="android.intent.action.VIEW"
            android:targetClass="com.prem.demoapp.activity.ChatActivity"
            android:targetPackage="com.prem.demoapp" /> // you need to provide here your Activity name and target package name you application


        <categories android:name="android.shortcut.conversation" />
    </shortcut>


    <shortcut
        android:enabled="true"
        android:icon="@drawable/ic_check"
        android:shortcutDisabledMessage="@string/app_name"
        android:shortcutId="compose"
        android:shortcutLongLabel="@string/app_name"
        android:shortcutShortLabel="@string/app_name">
        <intent
            android:action="android.intent.action.VIEW"
            android:targetClass="com.prem.demoapp.activity.AccountSettingActivity"
            android:targetPackage="com.prem.demoapp" />

        <categories android:name="android.shortcut.conversation" />
    </shortcut>



</shortcuts>

此快捷方式的输出

enter image description here

有关详情,请参阅 App Shortcuts

答案 1 :(得分:1)

如果您的应用程序定位到版本7.1+(API级别25 +),则只能使用这些快捷方式。

这些快捷方式有三种不同类型,取自文档:

  

静态快捷方式是在打包到APK中的资源文件中定义的。因此,您必须等到更新整个应用程序   更改这些静态快捷方式的详细信息。

     使用ShortcutManager在运行时发布

动态快捷方式    API。在运行时,您的应用可以发布,更新和删除它    动态捷径。

     

固定快捷方式在运行时发布,也可以使用   ShortcutManager API。在运行时,您的应用可以尝试固定   快捷方式,此时用户收到确认对话框询问   他们允许固定快捷方式。固定的快捷方式显示在   仅当用户接受固定请求时才支持启动程序。 (仅适用于Android 8.0 +)

这些快捷方式至少引用了应用内的一个意图。我不会从这里的文档中复制粘贴教程,你可以找到你需要知道的所有内容here