我已经创建了从一个特定号码接收消息的应用程序。它工作正常。现在我想在收到消息后在收件箱应用程序图标上显示警报图标。我应该为此添加代码。
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();
}
答案 0 :(得分:0)
图标在AndroidManifest文件中进行了硬编码。它是以这种方式设计的,因此可以在不运行任何代码的情况下检索应用程序图标(这可能会导致应用程序启动速度变慢)
一些自定义家庭应用程序支持此功能,但使用私有API。
您可以尝试使用NotificationManager并在状态栏中添加图标。这将更加明显,这是一种更值得推荐的做法。在这种情况下,请使用状态栏,以便为...设计...
关于获取动态图标,当手机收到消息(推送通知或其他)并且您的应用程序用于构建通知时,您可以在构建通知之前执行小的http请求以提取动态图标文件。这会延迟发布几秒钟,但这并不重要。然后,您可以获得生成的图像并在通知中使用它。可以通过发送一些数据(我猜,推送通知)来选择特定图像,该数据可识别哪些照片(例如网址)或ID可以附加到应用的通知构建部分中已存在的网址上
答案 1 :(得分:0)
我确定您要在哪里显示警告徽章/图标,但您可以检查并尝试实施:https://github.com/jgilfelt/android-viewbadger