我正在开发一个短信应用程序。一旦SMS进入收件箱,它应该显示一些警报。 我想在以下代码中添加警报。有可能吗?
public class SMSReceiver extends BroadcastReceiver
{
@Override
public void onReceive(Context context, Intent intent)
{
Bundle bundle = intent.getExtras();
SmsMessage[] msgs = null;
if(null != bundle)
{
Object[] pdus = (Object[]) bundle.get("pdus");
msgs = new SmsMessage[pdus.length];
byte[] data = null;
for (int i=0; i<msgs.length; i++){
msgs[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
}
}
}
}
答案 0 :(得分:3)
在您的应用中创建Activity
,然后从Activity
BroadcastReceiver
现在在AlertDialog
onCreate
方法中启动Activity
在style.xml
文件夹中创建res/values
并将其放入其中
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">#000000</item>
<item name="android:windowNoTitle">true</item>
</style>
通过将Activty
作为android:theme="@style/Theme.Transparent"
的{{1}}属性放在Activity
文件中,使AndroidManifest.xml
透明,这样才会显示AlertDialog
。
答案 1 :(得分:1)
据我了解,您无法从广播接收器发起活动。如果是这种情况,这将有助于您:
Intent i=new Intent(context,ActivityName.class);
startActivity(i);
和“如何显示AlertDialog”,按照Ravi的回答是你能做的最好的事情。
答案 2 :(得分:0)
调用新的活动集对话框主题,并从广播接收器的onReceive方法调用..
答案 3 :(得分:0)
您应该使用通知管理器: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
谷歌特别说(他们的重点):
后台服务永远不应自行启动活动以接收用户互动。相反,该服务应创建状态栏通知,以便在用户选择时启动活动。
您正在谈论BroadcastReceiver而不是服务,但我怀疑它仍然适用。