0

我已经创建了从一个特定号码接收消息的应用程序。它工作正常。现在我想在收到消息后在收件箱应用程序图标上显示警报图标。我应该在哪里添加代码。

    if ( extras != null ) {
                // get array data from SMS
                Object[] smsExtra = (Object[]) extras.get( "pdus" ); // "pdus" is the key

                for ( int i = 0; i < smsExtra.length; ++i ) {
                    // get sms message
                    SmsMessage sms = SmsMessage.createFromPdu((byte[])smsExtra[i]);
                    // get content and number
                    String body = sms.getMessageBody();
                    String address = sms.getOriginatingAddress();
                    // create display message

                    if( address.equals("+91999999999")){


                    messages += "SMS from " + address + " :\n";
                    messages += body + "\n";

               // notify new arriving message
                    Toast.makeText( context, messages, Toast.LENGTH_LONG ).show();
                    listSms.add(new SmsInfo(address, body));
                    this.abortBroadcast();
    }
4

2 回答 2

0

该图标在 AndroidManifest 文件中进行了硬编码。就是这样设计的,所以不运行任何代码就可以获取app图标(可能会导致app启动速度变慢)

一些自定义家庭应用程序支持这一点,但使用私有 API。

您可以尝试使用 NotificationManager 并将图标添加到状态栏。这将更加明显,这是一种更推荐的方式。在这种情况下使用状态栏,因为它的设计目的是......

关于获取动态图标,当手机收到消息(推送通知或其他)并且您的应用程序开始构建通知时,您可以在构建通知之前执行一个小的 http 请求来拉动动态图标文件。这将延迟发布几秒钟,但这并不重要。然后您可以获取生成的图像并在通知中使用它。可以通过发送一些数据来选择特定的图像(让我猜猜,推送通知),这些数据标识什么照片,例如 url,或者您可以附加到应用程序的通知构建部分中已经存在的 url 上的 id .

于 2013-09-16T09:01:39.120 回答
0

我确定您想在哪里显示警报徽章/图标,但您可以检查并尝试实施:https ://github.com/jgilfelt/android-viewbadger

于 2013-09-16T09:01:44.640 回答