【问题标题】:Tile only application仅瓷砖应用
【发布时间】:2021-01-05 11:13:49
【问题描述】:

已经看到关于没有 GUI 的活动的问题 hereherehere。另外,这些答案比较老了,我不知道它们是否仍然相关。

我想创建一个应用,其唯一的用户交互是快速磁贴。

我知道根本不可能没有活动,所以我有一个没有显示的空白活动,使用@android:style/Theme.NoDisplay

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.NoDisplay">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

<service
    android:name=".AdaptativeSleepTile"
    android:icon="@drawable/ic_launcher_background">
</service>

但是应用程序出现在我的应用程序列表中(逻辑上当我单击它时没有任何反应),这不是 this answer 的 cmets 中所写的内容。

我无法删除 &lt;category android:name="android.intent.category.LAUNCHER"/&gt; 行,否则我会收到错误消息

Could not identify launch activity: Default Activity not found
Error while Launching activity

那么我应该怎么做才能让唯一的用户交互是快速磁贴的服务? (同样的问题也适用于根本没有交互,或者我猜只有小部件)

使用 Android Studio 4 和 SDK 29

【问题讨论】:

    标签: java android android-activity service


    【解决方案1】:

    我想创建一个应用,其唯一的用户交互是快速磁贴。

    这可能实用,也可能不实用。从 Android 3.1 开始,应用程序安装在“停止状态”,需要明确的 Intent 才能将它们移出停止状态并允许它们运行。通常,这来自用户点击启动器中的图标来运行您的MAIN/LAUNCHER 活动。

    有可能只是在清单中有一个可用的TileService 就足以让你在通知阴影中列出,并且添加磁贴的行为足以让你的应用程序脱离停止状态。但是,我当然不能保证,如果这不起作用,我也不会感到惊讶。

    另外,请记住,您可能出于其他原因需要进行活动:

    • 显示您的服务条款
    • 显示您的隐私政策
    • 提供对技术支持的访问权限
    • 允许配置应用程序
    • 等等

    但是该应用程序出现在我的应用程序列表中(从逻辑上讲,当我单击它时没有发生任何事情),这不是该答案的 cmets 中所写的内容。

    如果您指的是第一条评论,那是完全错误的,正如其他 cmets 在该答案中所指出的那样。

    我无法删除该行,否则我会收到错误消息

    我假设您是从 Android Studio 获得的。您将需要更改运行配置以不尝试启动活动。

    同样的问题也适用于完全没有交互

    幸运的是,没有解决方案。恶意软件作者认为完全不可见的应用程序很棒,Android 会采取措施阻止此类应用程序运行。而且,这就是为什么如果您需要为您的TileService 进行活动,我不会感到惊讶。

    【讨论】:

    • 感谢您的回答,对于我正在为自己开发的这种特定用途,所以我认为服务条款没有用...虽然我没有考虑过安全问题.但手机预装了许多服务,并非所有服务都在抽屉里有图标,例如内置手电筒或铸件只能通过瓷砖访问。在这里,我希望瓷砖执行类似显示财富的动作。你能解释一下我应该怎么做才能改变我的运行配置吗?
    • @sayanel:“你能解释一下我应该怎么做才能改变我的运行配置吗?” -- 转到 Android Studio 主菜单中的运行 > 编辑配置。在列表中选择您的运行配置(例如,app)。将“启动选项”的值从“默认活动”更改为其他值,可能是“无”。然后,当您从 Studio 运行应用程序时,APK 将被安装,但不会发生其他任何事情。
    • 感谢成功:我将“启动选项”设置为 Nothing 并评论删除了 &lt;category android:name="android.intent.category.LAUNCHER"/&gt;:我的应用现在没有抽屉条目​​,只有一个磁贴
    • 关于停止/启动状态,我使用了 tile onClick() 方法,我认为该方法将始终可用
    猜你喜欢
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 2017-08-18
    • 1970-01-01
    相关资源
    最近更新 更多