我正在开发音乐播放器小部件(主屏幕小部件).. 它只需要播放一首歌曲(最好使用 MediaPlayer 类)。但我不确定如何实现。我对 Android 开发有点缺乏经验,只是提到了这一点。
我目前拥有的类扩展了 AppWidgetProvider,我想让这个类处理音乐播放部分并不是一个好主意,而是一个 Service .如果是这样,怎么做到的?
此外,我有 3 个按钮:播放、暂停和停止,我可以在 onReceive(...) 中区分按下了哪个按钮。
提前致谢!
这是类。
public class MusicManager extends AppWidgetProvider {
private final String ACTION_WIDGET_PLAY = "PlaySong";
private final String ACTION_WIDGET_PAUSE = "PauseSong";
private final String ACTION_WIDGET_STOP = "StopSong";
private final int INTENT_FLAGS = 0;
private final int REQUEST_CODE = 0;
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
RemoteViews controlButtons = new RemoteViews(context.getPackageName(),
R.layout.main);
Intent playIntent = new Intent(context, MusicService.class);
Intent pauseIntent = new Intent(context, MusicService.class);
Intent stopIntent = new Intent(context, MusicService.class);
PendingIntent playPendingIntent = PendingIntent.getService(
context, REQUEST_CODE, playIntent, INTENT_FLAGS);
PendingIntent pausePendingIntent = PendingIntent.getService(
context, REQUEST_CODE, pauseIntent, INTENT_FLAGS);
PendingIntent stopPendingIntent = PendingIntent.getService(
context, REQUEST_CODE, stopIntent, INTENT_FLAGS);
controlButtons.setOnClickPendingIntent(
R.id.btnPlay, playPendingIntent);
controlButtons.setOnClickPendingIntent(
R.id.btnPause, pausePendingIntent);
controlButtons.setOnClickPendingIntent(
R.id.btnStop, stopPendingIntent);
appWidgetManager.updateAppWidget(appWidgetIds, controlButtons);
}
}
最佳答案
已添加 <service android:name=".MusicService" android:enabled="true" />
到 list !
关于安卓音乐播放器小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4298888/
最近因为项目需要,需要将Android手机系统自带的某个系统软件反编译并更改里面某个资源,并重新打包,签名生成新的自定义的apk,下面我来介绍一下我的实现过程。APK修改,分为以下几步:反编译解包,修改,重打包,修改签名等步骤。安卓apk修改准备工作1.系统配置好JavaJDK环境变量2.需要root权限的手机(针对系统自带apk,其他软件免root)3.Auto-Sign签名工具4.apktool工具安卓apk修改开始反编译本文拿Android系统里面的Settings.apk做demo,具体如何将apk获取出来在此就不过多介绍了,直接进入主题:按键win+R输入cmd,打开命令窗口,并将路
快捷目录前言一、涉及到的相关技术简介二、具体实现过程及踩坑杂谈1.安卓手机改造成linux系统实现方案2.改造后的手机Linux中软件的安装3.手机Linux中安装MySQL5.7踩坑实录4.手机Linux中安装软件的正确方法三、Linux服务器部署前后端分离项目流程1.前提准备(安装必要软件,搭建环境):2.前后端分离项目的详细部署过程:总结前言总体概述:本篇文章隶属于“手机改造服务器部署前后端分离项目”系列专栏,该专栏将分多个板块,每个板块独立成篇来详细记录:手机(安卓)改造成个人服务器(Linux)、Linux中安装软件、配置开发环境、部署JAVA+VUE+MySQL5.7前后端分离项目
首先,很抱歉在这里重新提出这个问题。我已经尝试了两天如何使用javascript/jquery完成这项工作,我想我已经阅读了所有堆栈溢出和其他关于此的博客文章,所以请不要将其标记为重复,因为我无法使用2012年到2017年的过时脚本。我有一个页面重定向到第三方电子学习平台,其中一些内容需要flash才能工作。许多用户不关心他们的机器上安装了哪些软件(多么新,呵呵)所以我需要检测它并显示典型消息“请单击此处安装/更新FlashPlayer”,但我找不到“现代"执行此操作的脚本/方式,在任何地方,尽可能简化。我尝试过的所有脚本都已弃用或在所有浏览器中返回false,即使我安装并激活了最新版
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion我正在开发一个网络应用程序,用户需要在其中输入日期和时间。我以前用过这个日历小部件,它运行良好:http://www.dynarch.com/projects/calendar/但是,自2005年以来就没有更新过。我想知道是否有人知道更
我想知道Dojo表单小部件何时被解析或准备就绪,以便我可以对其进行动态自定义。我试图通过使用dojo.connect()方法来实现这一点。但是,我不确定要听什么事件。是onLoad还是onStartup或者..?这是我所做的,但它没有触发:dojo.connect(dijit.byId('myWidget'),'onStartup',function(evt){console.debug("test");}请注意,dijit.byId('myWidget')部分会正确返回对象,所以这不是问题所在。 最佳答案 这在某种程度上取决于您要
您知Prop有内置拖放重新排序功能的选项卡小部件吗?我正在构建类似编辑器的界面,并希望允许用户重新排序他们的选项卡。到目前为止,我一直在使用ExtJS和communityplugin,但它有很多问题,通常需要在每个新的ExtJS版本中更新。 最佳答案 是somethinglikethis你在找什么?如果我想做你现在做的事,我肯定会使用jQuery和jQueryUI作为基础。围绕jQuery的可靠支持结构和丰富的教程是无与伦比的!当然,这是在您不介意另一个javascript框架的重量或不必重新编码您的某些界面的情况下。稍微有点切线,
我在基于dojo的应用程序中使用了一些dijit.form.NumberSpinner小部件,所有这些小部件都连接到onChange操作。当一个区域有很多NumberSpinner时会出现问题:用户滚动页面并在使用鼠标滚轮滚动时意外地用意外值填充NumberSpinner字段遍布整个地区。是否可以通过某种方式禁用dijit.form.NumberSpinner小部件上的鼠标滚轮事件? 最佳答案 如果您永远不需要它,并且您可以访问dojo源代码并且能够进行自己的构建,请在dijit/form/_Spinner.js上注释这一行:pos
这对其他人来说可能很明显,但我没有通过搜索找到它,所以在这里发布问题和一个可能的答案。背景:自定义JQueryUI小部件使用widgetfactory在小部件中,某些元素会根据其他数据/选项隐藏或显示。创建单元测试以验证它们是否正确显示/隐藏。我认为我的单元测试都可以在内存中创建自己的元素,类似于thisoldanswer.从这个例子中删除了实际的小部件部分:test('show/hide',1,function(){varsomecondition=true;vardiv=$('').hide();if(somecondition)div.show();equal(somecondi
CocoaTouch的UITableView允许用户以良好的性能滚动浏览大量数据行,因为它回收了表格行。不是为每个数据行创建一个GUI元素,而是创建有限数量的表行,并在用户滚动时简单地更新相关数据,给人一种在大量表行中上下导航的错觉。有没有人在javascript中看到过这个?是否有任何可用的插件可以为我执行此操作? 最佳答案 infinity.js运行良好。它将在幕后动态加载“页面”,让您看起来列表已完全加载。更多信息可以在他们的Github页面上找到-https://github.com/airbnb/infinity此外,我已
我正在从头开始编写一个新的jquery-ui小部件。我找到了官方的“widgetfactoryworks”文档。(http://jqueryui.com/demos/widget/)小部件本身工作正常。现在我想在内部存储一些值-有更好的方法吗?我认为在选项中声明的所有属性都是公开的。感谢您的帮助! 最佳答案 只需在this上使用普通的旧属性。例如,一个基本的小部件看起来像这样:$.widget('some_name',{options:{/*...*/},_create:function(){//...this.internal_v