- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我做了一个可以在屏幕锁定时显示未接来电的应用程序,但我不知道如何在锁定屏幕上显示未接来电的数量。通话图像来自 MultiWaveView
which已经定义好了,我试过使用OnDraw
,用Canvas
和paint
,绘制指定的坐标。但是它不起作用。所以任何人帮帮我?非常感谢。
如何在图片中显示数字(例如图片中的位置2)?
edit1
现在我在应用程序中得到了正确的未接来电数量,但它没有正确显示
类(class):
framework\base\core\java\com\android\internal\widget\multiwaveview\MissedCallView.java
public class MissedCallView extends View {
private static final String TAG = "MissedCallViews";
public static final int UPDATESTART = 10;
private static final int DELAYTIME = 10000;
private int sTempMissedCallCount=-1;
Context mContext;
Canvas mCanvas;
public MissedCallView(Context context)
{
super(context);
Log.i(TAG, "MissedCallView1");
mCanvas=new Canvas();
}
public MissedCallView(Context context, AttributeSet attrs)
{
super(context, attrs);
Log.i(TAG, "MissedCallView2");
mCanvas=new Canvas();
}
public MissedCallView(Context context,int missedCallNum) {
super(context);
sTempMissedCallCount=missedCallNum;
Log.i(TAG, "MissedCallView3");
mCanvas=new Canvas();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if(sTempMissedCallCount>0)
{
Paint paint=new Paint(Paint.ANTIALIASFLAG);
paint.setColor(Color.RED); Log.i(TAG,"Integer.toString(sTempMissedCallCount)is:"+Integer.toString(sTempMissedCallCount)); canvas.drawText(Integer.toString(sTempMissedCallCount),40,310,paint);//50 invalidate();
Log.i(TAG, "invalidate");
}
}
}
这是自定义 View ,只有 MissedCallView(Context context,int missedCallNum)
有效,它在 public class MissCallObserver extends ContentObserver
处调用,当收听未接来电号码时。但是onDraw 不工作,所以应用程序不显示我得到的号码。
编辑 2:
现在我在我的自定义 hanlder 中调用函数,处理程序每 10 秒执行一次
private final Handler mUpdateMissCallNum = new Handler() {
@Override
public void handleMessage(Message msg) {
Log.i(TAG, "mUpdateMissCallNum");
switch (msg.what) {
case UPDATESTART:
Log.i(TAG, "UPDATESTART");
sNewMissedCallCount = getMissedCallCount(mContext);
if (sNewMissedCallCount != sTempMissedCallCount)
{
Log.i(TAG, "sNewMissedCallCount != sTempMissedCallCount");
new Thread(new Runnable()
{
public void run()
{
Log.i(TAG, "sNewMissedCallCount is:"+sNewMissedCallCount);
Log.i(TAG, "sTempMissedCallCount is:"+sTempMissedCallCount);
sTempMissedCallCount = sNewMissedCallCount;
mMissedCallView=new MissedCallView(mContext,sTempMissedCallCount);
//call my costum view here
Log.i(TAG, "sTempMissedCallCount is:"+sTempMissedCallCount);
}
}
).start();
}
break;
default:
break;
}
}
}
我用 canvas 和 paint 绘制它,没有 XML 文件
然后我在 XML:Keyguardscreentabunlock.xml (framework\base\core\res\res\layout) 中锁定屏幕。
在系统中使用Ripple Lock:
<com.android.internal.widget.multiwaveview.MultiWaveView
android:id="@+id/unlockwidget"
android:orientation="horizontal"
android:layoutwidth="matchparent"
android:layoutheight="matchparent"
android:layout_alignParentBottom="true"
android:targetDrawables="@array/lockscreen_targets_with_camera"
android:targetDescriptions="@array/lockscreen_target_descriptions_with_camera"
android:directionDescriptions="@array/lockscreen_direction_descriptions"
android:handleDrawable="@drawable/ic_lockscreen_handle"
android:waveDrawable="@drawable/ic_lockscreen_outerring"
android:outerRadius="@dimen/multiwaveview_target_placement_radius"
android:snapMargin="@dimen/multiwaveview_snap_margin"
android:hitRadius="@dimen/multiwaveview_hit_radius"
android:rightChevronDrawable="@drawable/ic_lockscreen_chevron_right"
android:horizontalOffset="0dip"
android:verticalOffset="60dip"
android:feedbackCount="3"
android:vibrationDuration="20"
/>
然后我明白了:
现在想把未接来电显示在圆心(图片鼠标位置),不知道怎么实现。
最佳答案
你可以使用标志 FLAG_SHOW_WHEN_LOCKED
有关锁定屏幕的更多信息 My android lock
public static final int FLAG_SHOW_WHEN_LOCKED
来自 API 级别 5 的行
Window flag: special flag to let windows be shown when the screen is locked. This will let application windows take precedence over key guard or any other lock screens. Can be used with FLAG_KEEP_SCREEN_ON to turn screen on and display windows directly before showing the key guard window. Can be used with FLAG_DISMISS_KEYGUARD to automatically fully dismisss non-secure keyguards
您只需要查询电话中的任何电话,然后提取未接来电,然后只需获取查询返回的 Cursor 中的行数
String[] projection = { CallLog.Calls.CACHED_NAME, CallLog.Calls.CACHED_NUMBER_LABEL, CallLog.Calls.TYPE };
String where = CallLog.Calls.TYPE+"="+CallLog.Calls.MISSED_TYPE;
Cursor c = this.getContentResolver().query(CallLog.Calls.CONTENT_URI, selection,where, null, null);
c.moveToFirst();
Log.d("CALL", ""+c.getCount()); //do some other operation
if(c.getCount() == SOME_VALUE_TO_START_APP_ONE)
在 where 子句中,您可以设置数据选择条件。在您的情况下,您需要类型等于 CallLog.Calls.MISSED_TYPE
的所有内容。
您可以选择来电者姓名和他的号码,当然您可以指定要查询的更多信息,例如手机,家庭,工作等号码类型。
该表达式相当于 SQL 查询,类似于:
SELECT CACHED_NAME, CACHED_NUMBER_LABEL, TYPE FROM CONTENT_URI WHERE TYPE=MISSED_TYPE
UPDATE2: how to show the 2 in the picutre .?
您只需在系统设置中设置报警字符串即可,如下:
String message = "2";
Settings.System.putString(context.getContentResolver(),
Settings.System.NEXT_ALARM_FORMATTED, message);
关于android - 如何在锁屏界面显示未接来电号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13676595/
我是一家小型非营利组织的技术总监,我们正在制作一个新网站。我们提出了几个不同主页设计的模型,需要接收董事会成员的意见。是否有在线应用程序/程序/框架可以接收和组织用户评论?我正在寻找允许在查看页面时发
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 4年前关闭。 Improve thi
我阅读了很多关于 java 接口(interface)的文章。我知道你可以实现多态性和其他伟大的东西(函数指针等)。我有理论知识,但有一点点或什至没有。我一直在使用很多已经制作好的界面,比如“Runn
已关闭。此问题旨在寻求有关书籍、工具、软件库等的建议。不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以
我正在尝试在 Windows 7 上编写一个 python 脚本来与我的 Wacom Bamboo Pen 数位板交互。 Wacom 建议使用 WinTab API,它工作正常,但不适用于我的应用程序
我正在研究一种远程访问有关 Linux 服务器统计信息的方法,即 conky会显示。 有没有办法与 conky 交互并获取它显示的统计信息?如果没有,您能否推荐一种获取此类统计数据的好方法? (C/C
将所有这些代码包装在 UI: do { } block 中的原因是什么?我在哪里可以获得关于它的明确说明? UI: do { backgroundButton.setImage(UIImage
我需要将 R 连接到某些 C# 应用程序。我安装了 rscproxy_1.3 和 R_Scilab_DCOM3.0-1B5 添加了对 STATCONNECTORCLNTLib、StatConnecto
我正在尝试遍历接口(interface)片段以通过 id 查找我的特定结构并更改属性。 type A struct { ID ID Steps []Step } type Ste
我有两种不同格式的相同界面,一种是键由低破折号分隔的 JSON 格式,另一种是 javascript camelCase 格式: JSON 格式: interface MyJsonInterface
操作系统:Linux。 我正在尝试寻找可能的方法来为我的嵌入式系统实现 Web 界面。 目前有一个外壳(基于文本)和一小组命令用于查询设备。 我是网络开发新手,我的问题是: 我必须使用什么网络服务器?
我正在尝试运行基于 Mechanical Turk Qualtrics 的调查,并且需要一些似乎可以通过 Mechanical Turk API 使用的功能,例如 custom Qualificati
我见过漂亮的 MetroTwit 界面 http://www.metrotwit.com/ ;我想知道使用了哪些 WPF 组件来尝试重现它。 最佳答案 MetroTwit 设计师在这里:) 所有的控件
我有一个小问题。我需要将 Hadoop Web 界面与我们的 Web 应用程序集成。我只需要一个 Hadoop 接口(interface),我们可以在其中运行一些 hadoop 命令,例如 1
假设我有这个 JavaScript 函数: function updateMainBuff(buff) { // do some stuff } 我的
我试图找出一个窗口是否属于当前的虚拟桌面。 我从 winapi 中找到了 VirtualDesktopManager 类,但即使根据 here 它应该位于“shobjidl.h” header 中,当
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 提供事实和引用来回答它. 8年前关闭。 Improve this
我的 Tkinter GUI 界面有问题。文本不会在 shell 中打印,但如果将 Entry 放置在第一个 tk 窗口 get() 中,它就可以工作...帮助我吗? 这是我的代码: import o
我有一个在 MATLAB 中实现的随机微分方程组。只有 4 个变量与 Euler-Maruyama 集成,所以没有什么太花哨的......不过,技术细节对于这个问题并不重要。 您建议我如何构建一个 W
对于我创建的插件,我想添加一个网络界面,您可以从中更改设置并执行一些简单的数据操作。此数据操作应通过 sqlquerys 完成。我正在使用 sqlite 数据库,这就是问题开始的地方: 网站(serv
我是一名优秀的程序员,十分优秀!