Android:给应用界面提供快捷方式

Android:给应用界面提供快捷方式


前言

        在平时使用微信,支付宝等APP的时候,我们长按应用图标,其会弹出扫一扫等应用界面快捷方式,如图所示。

        最近观看动脑学院的安卓教程,里面正好有这一功能的实现教程。但按照里面敲出来会发生许多报错,在这里将代码和我遇到的错误以及解决方法po出来供大家借鉴。


 

提示:以下是本篇文章正文内容,下面案例可供参考

一、代码

        首先,在res文件夹中新建一个目录“xml”,新建一个xml文件叫做shortcuts.xml,如下图所示。

         其代码如下:

<?xml version="1.0" encoding="utf-8"?>
<shortcuts xmlns:android="http://schemas.android.com/apk/res/android">
    <shortcut
        android:shortcutId="first"
        android:enabled="true"
        android:icon="@mipmap/ic_launcher"
        android:shortcutShortLabel="@string/first_short"
        android:shortcutLongLabel="@string/first_long">

       <intent
           android:action="android.intent.action.VIEW"
           android:targetPackage="com.example.hotel"
           android:targetClass="com.example.hotel.ui.MainActivity"/>
        <categories android:name="android.shortcut.conversation"/>
    </shortcut>

</shortcuts>

         需要注意的是,shortcutShortLabel和shortcutLongLabel不能直接在双引号内写对应的内容,而应该在values目录下的string.xml配置相关内容,然后回到该文件引用。

        string.xml代码如下:

<resources>
    <string name="app_name">crab</string>
    <string name="first_short">first</string>
    <string name="first_long">首页</string>
</resources>

        然后在AndroidMainifest.xml中进行配置,我以主页面作为启动页面,在其中加入<meta-data>标签,如下图所示。

        这样的话流程就走完了。 

 

二、遇到的问题和解决方法

1.不知道包名

        在视频中,老师在AndroidManifest.xml找到包名,但是我点开我的文件,里面没有显示包名,我找了好久也不知道对应的包名:

         于是在shortcuts.xml中寻找targetPackage不知道该写啥,所以需要找一种方式得到包名。

        我通过下面方法获得了包名:

        修改MainActivity.java文件:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String packageName = getPackageName();
        Intent intent = new Intent(Intent.ACTION_MAIN);
        intent.addCategory(Intent.CATEGORY_LAUNCHER);
        intent.setPackage(packageName);
        TextView tv_receive = findViewById(R.id.tv_receive);
        String desc = String.format("包名为:%s",packageName);
        tv_receive.setText(desc);
    }
}

         主页面的layout代码如下:

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ui.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="这里是主页面!!!还未开发完成!!!!!!!"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <TextView
        android:id="@+id/tv_receive"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

</androidx.constraintlayout.widget.ConstraintLayout>

        运行之后,得到包名,如图所示:

         于是将 包名加入配置文件、以及targetPackage便解决该问题。

2.运行时显示错误

ERROR:D:\AndroidProject\xxx\app\src\main\res\xml\shortcuts.xml:7: AAPT: error: attribute android:shortcutID not found.

        刚开始显示这个错误,经过我一番细致检查,我发现是打错字了……shortcutId的最后一个字母打成了大写……

        不过修改完之后还是报错,我查阅了资料:这个错误通常是由于在 Android 版本较早的设备上使用了android:shortcutId,而它只在 Android 7.1(API 级别 25)及以上版本中可用,所以需要解决该错误。

        于是我在我项目的build.gradle文件查找我的minSdk版本,发现刚好24……于是进行修改

        修改后右上角会弹出信息,点击Sync Now,不要点击ingnore these changes。

        修改之后就可以成功运行了。

三、效果

        如图所示:


  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Android手势锁屏界面应用是一种用于增加设备安全性的方式,它允许用户通过在屏幕上绘制特定的手势来解锁手机。这种方式相对于传统的密码锁更加方便和快捷。 手势锁屏应用一般会在用户首次设置锁屏方式时引导用户绘制一条特定的手势线路。用户可以通过在屏幕上滑动手指来创建属于自己的个性化手势锁。手势锁通过记录相应的手势路径,并识别出特定的手势,来判断用户的解锁操作是否正确。 与其他解锁方式相比,手势锁屏界面应用有以下几大优点: 首先,手势锁屏更加安全。因为手势路径的可能性非常多,相较于常见的4位或6位数字密码,直接提高了密码的复杂性,从而增加了破解的难度。 其次,手势锁屏界面应用使用起来非常方便。只需要滑动手指绘制手势路径即可解锁手机。相对于输入数字密码的方式,手势锁屏更加快捷,并且用户可以在界面上随意绘制手势,形成个性化的解锁方式。 此外,手势锁屏界面应用还可以提供额外的功能附加服务。例如,一些手势锁屏应用可以设置特定手势对应特定应用的快速启动,从而提高手机的使用效率。 总而言之,手势锁屏界面应用是一种方便、快捷和个性化的设备锁屏方式。通过绘制特定的手势路径来解锁手机,用户可以提高设备的安全性,并享受更好的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crab_xd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值