小编bar*_*rry的帖子

是否有Android API来删除警报

我有一个应用程序,允许用户在不同的时间设置警报.目前,它使用AlarmManager加上BroadcastReceiver和AlertDialog来提醒用户警报响起.

我想知道我的应用程序是否可以使用内置闹钟.我知道我可以安排这样的警报:

            Intent i = new Intent(AlarmClock.ACTION_SET_ALARM);
        i.putExtra(AlarmClock.EXTRA_HOUR, new Date(alarm.getTime()).getHours());
        i.putExtra(AlarmClock.EXTRA_MINUTES, new Date(alarm.getTime()).getMinutes());
        i.putExtra(AlarmClock.EXTRA_MINUTES, alarm.getDescription());
        i.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
        context.startActivity(i);
Run Code Online (Sandbox Code Playgroud)

但这提出了两个问题:

  1. 似乎没有办法在未来24小时内安排警报
  2. 内置警报的Android只允许设置10个警报

作为第1项的工作,我可以使用AlarmManager来安排用户警报在24小时内设置.然而,这让我得到了第2项 - 理想情况下我需要一种方法来在Android闹钟执行后从Android闹钟中删除我的应用程序警报(以避免我的应用程序的警报占用警报空间)但是找不到一个可以获得警报警报列表并删除一个.

这是可能的,还是我需要坚持手动AlarmManager/AlertDialog方法?

android alarm alarmmanager

6
推荐指数
1
解决办法
615
查看次数

Android - 确定短信发送失败的原因

我有一个提醒应用程序,它将发送短信通知用户他们的提醒时间已经过去.这很好用.但是,我一直在测试当手机睡着并错过提醒时会发生什么.

我正在AlarmManager设置警报以对应提醒时间.我的日志记录显示,当手机重新启动并且发送短信的尝试发生时,闹钟响起,但从未收到短信.

所以问题是,有没有办法调试为什么不发送短信?

我的当前代码在发生警报事件时设置ContentObserver:

    private void registerToListenForSentSMS()
{
    MessageSentListener smsObeserver = new MessageSentListener(new Handler());
    ContentResolver contentResolver = TheEveryOtherAlarmAppApplication.getAppContext().getContentResolver();
    contentResolver.registerContentObserver(Uri.parse("content://sms"), true, smsObeserver);
}
Run Code Online (Sandbox Code Playgroud)

MessageSentListener收到一些 SMS事件发生的通知:

public class MessageSentListener extends ContentObserver
{

public MessageSentListener(Handler handler)
{
    super(handler);
}

@Override
public void onChange(boolean selfChange)
{
    super.onChange(selfChange);

    Log.d(Constants.ALARM_APP_LOG_TAG, "Something happend");
    ContentResolver contentResolver = AlarmAppApplication.getAppContext().getContentResolver();

    contentResolver.unregisterContentObserver(this);
}
}
Run Code Online (Sandbox Code Playgroud)

但这可能是由与我的应用程序无关的SMS事件引起的.无论如何,它并没有真正让我更接近解决方案 - 我想知道什么时候出现什么问题!

如果没有发送警报短信,我可以重新发送或使用其他一些通知方法,如电子邮件等.

sms android

6
推荐指数
2
解决办法
2101
查看次数

我可以添加指向Apple应用商店说明的超链接吗?

我在应用商店中发布了一个应用.其描述包括指向网页的链接.但是,它不是可点击的,只是常规文本.

iTunes连接(开发人员控制台)上没有预览选项,因此无法在说明中使用html进行测试.

那么,是否可以使用html或其他标记在应用商店中创建"实时"链接?

app-store ios

6
推荐指数
1
解决办法
4320
查看次数

SQLiteDatabases和Cursors

我想知道是否有人可以给我一个Android游标的简要概述.几个具体问题:

1 - 我有一个在数据库查询后返回游标的方法:

    public static Cursor getVehicles()
{
    SQLiteDatabase db = vehicleData.getReadableDatabase();
    Cursor cursor = db.query(TABLE_NAME, GET_VEHICLES_FROM_CLAUSE, null, null, null, null, ORDER_BY);

    return cursor;
}
Run Code Online (Sandbox Code Playgroud)

为了做家务,我在return语句之前尝试了db.close().但是,这会导致返回的游标不包含任何行.为什么是这样?

2 - 关闭游标和关闭数据库有什么区别?

3 - 如果它是一个局部变量,我是否需要在Cursor上调用close,还是可以将它留给垃圾收集器进行清理?

4 - 我的数据库很小,仅供我的应用程序使用 - 我可以保持打开状态吗?

database sqlite android database-cursor

5
推荐指数
1
解决办法
2839
查看次数

应用程序删除后PendingIntents会发生什么?

正如标题所示,我有兴趣了解Android对已从设备中删除的应用程序创建的PendingIntents所做的事情.

到目前为止,我的研究涉及使用AlarmManager和待定意图设置警报.在正常情况下,所有工作都按预期工作.为了测试卸载情况,我使用AlarmManager和PendingIntent为将来的某个点设置了警报,然后删除了应用程序.我观察到的是,似乎没有任何事情发生 - 例如,logcat没有显示我的PendingIntent试图启动使用缺少的类的错误.

我找不到关于此的文档,所以想知道是否有人知道这个或我可以参考的链接.

android uninstall android-pendingintent

5
推荐指数
1
解决办法
298
查看次数

我是否需要取消注册"匿名"BroadcastReceiver

我最近问了一个关于检查发送短信状态的问题,给出的答案是一个代码片段,注册了两个"匿名内部"(如果不正确,请更正我的术语)BroadcastReceivers来收听短信发送/传送的广播.这些接收器只需要接收有关我的应用程序刚刚发送的SMS的数据,因此不需要永久收听.

我的直接想法是"好吧,我完成后我需要取消注册",但这是正确的吗?我问海报,因为他没有包含任何未注册的代码,但没有得到回复.代码似乎是一种非常标准的方式来做我想要的,因为它出现在许多Android开发网站上.这里是:

//---sends an SMS message to another device---
private void sendSMS(String phoneNumber, String message)
{        
    String SENT = "SMS_SENT";
    String DELIVERED = "SMS_DELIVERED";

    PendingIntent sentPI = PendingIntent.getBroadcast(this, 0,
        new Intent(SENT), 0);

    PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
        new Intent(DELIVERED), 0);

    //---when the SMS has been sent---
    registerReceiver(new BroadcastReceiver(){
        @Override
        public void onReceive(Context arg0, Intent arg1) {
            switch (getResultCode())
            {
                case Activity.RESULT_OK:
                    Toast.makeText(getBaseContext(), "SMS sent", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_GENERIC_FAILURE:
                    Toast.makeText(getBaseContext(), "Generic failure", 
                            Toast.LENGTH_SHORT).show();
                    break;
                case SmsManager.RESULT_ERROR_NO_SERVICE:
                    Toast.makeText(getBaseContext(), "No service", …
Run Code Online (Sandbox Code Playgroud)

sms android anonymous-inner-class broadcastreceiver

5
推荐指数
1
解决办法
2090
查看次数

Android复合主键?

谁能告诉我如何在Android 1.6中声明一个包含autoincrement _id列的复合主键?我不确定语法.当我尝试添加值时,我最终只是在Java中执行它(其中registrationNumber + date必须在表中是唯一的):

            Cursor fuelUpsCursor = getFuelUps(registrationNumber, date);
        if(!fuelUpsCursor.moveToNext())
        {
            //add registrationNumber and date
        }
Run Code Online (Sandbox Code Playgroud)

我真的不需要_id列,但如果没有表,它会让生活变得棘手.

干杯,巴里

android composite-primary-key

4
推荐指数
1
解决办法
4695
查看次数

无法让HREF在Android strings.xml中工作

我正在尝试在about框中添加一个Twitter个人资料的链接."常规"链接(如电子邮件地址和网址)由处理

android:autoLink="email|web"
Run Code Online (Sandbox Code Playgroud)

在about.xml中,但对于Twitter个人资料页面,我需要在strings.xml中使用html代码.我试过了:

<string name="twitter">Follow us on &lt;a href=\"http://www.twitter.com/mytwitterprofile"&gt;Twitter: @mytwitterprofile&lt;/a&gt;</string>
Run Code Online (Sandbox Code Playgroud)

在about框上呈现html标记.

我也尝试过:

<string name="twitter">Follow us on <a href="http://www.twitter.com/mytwitterprofile">Twitter: @mytwitterprofile</a></string>
Run Code Online (Sandbox Code Playgroud)

它显示文本"在Twitter上关注我们:@mytwitterprofile",但它不是超链接.

我该怎么做这个看似简单的任务!?

干杯,巴里

android href

4
推荐指数
2
解决办法
1万
查看次数

哪个Android Intent标志使用

我有一个接收广播的应用程序AlarmManager.在此之后,它启动一个透明Activity(AlarmAlertDialogActivity)然后显示一个AlertDialog.AlertDialog在呼叫中单击取消结果finish().

由于AlarmAlertDialogActivity它不是从另一个发射,Activity而是一个广播接收器,它是用它发射的

Intent.FLAG_ACTIVITY_NEW_TASK
Run Code Online (Sandbox Code Playgroud)

这意味着Activity将在新任务中启动.

我的问题是,当应用程序在取消之后从最近的历史中重新启动AlertDialog(即通过按住主页按钮并单击应用程序的图标),AlertDialog将重新启动.我希望通过使用finish()/ Intentflags我可以避免这种情况; 我想要发生的是在要启动的父活动Activity之前的最后一次AlertDialog.

Intent.FLAG_ACTIVITY_NO_HISTORY在启动时尝试使用bitmasking 作为附加标志,AlarmAlertDialogActivity但这似乎没有任何区别.

Bitmasking Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS有效,但只能从最近的历史中删除应用程序(顾名思义).这对用户体验不利.

那么,是否有可能获得我正在寻找的UI流程?

更新 - 根据要求提供更多信息:

来自Broadcast接收器的Logcat,AlertDialog活动和我的主要活动:

    05-30 10:36:00.132: D/everyOtherApp(362): Received alarm broadcast at: Wed May 30 10:36:00 GMT+00:00 2012
05-30 10:36:00.262: D/everyOtherApp(362): AlarmAlertDialogActivity.onCreate()
05-30 10:36:00.912: D/everyOtherApp(362): AlarmAlertDialogActivity.onResume()
05-30 10:36:12.461: D/everyOtherApp(362): Cancel pressed

//Cancel exits the activity. I now relaunch the …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-activity

4
推荐指数
1
解决办法
2782
查看次数

是否可以在GroupDataModel中反转分组

我有一个GroupDataModel项目,并使用它来填充一个ListView.每个项目都有一个类别,可以是"电视"或"电影".我将"category"设置为排序键,并ListView显示按类别分组的项目.

但是,类别的顺序是"电影",然后是"电视".我需要他们按照其他顺序:"电视"然后"电影".

这可能吗?

码:

GroupDataModel* results = new GroupDataModel();
results->setGrouping(ItemGrouping::ByFullValue);
QStringList sortingKeys;
sortingKeys.append("category");
results->setSortingKeys(sortingKeys);
Run Code Online (Sandbox Code Playgroud)

listview blackberry-10 blackberry-cascades

4
推荐指数
1
解决办法
592
查看次数