1

私は1つのSMSアプリケーションを開発しています。その中で、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]);                


            }


        }
        }

}
4

4 に答える 4

3

Activityアプリケーションでを作成しActivityBroadcastReceiver

そして今AlertDialogonCreateActivity

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"ActivityAndroidManifest.xmlAlertDialog

于 2012-04-09T11:54:49.743 に答える
1

私が理解している限り、uは放送受信機からアクティビティを開始することはできません。その場合、これはあなたを助けます:

  Intent i=new Intent(context,ActivityName.class);
    startActivity(i);

そして「AlertDialogを表示する方法」、Raviの答えに従うことがあなたができる最善のことです。

于 2012-04-09T12:17:32.570 に答える
0

新しいアクティビティセットダイアログテーマを呼び出し、BroadcastReceiverのonReceiveメソッドから呼び出されます。

于 2012-04-09T12:23:43.860 に答える
0

通知マネージャーを使用する必要があります:http: //developer.android.com/guide/topics/ui/notifiers/notifications.html

具体的にはグーグルは言う(彼らの強調):

バックグラウンドサービスは、ユーザーの操作を受け取るために、それ自体でアクティビティを起動してはなりません。代わりに、サービスは、ユーザーが選択したときにアクティビティを起動するステータスバー通知を作成する必要があります。

あなたはサービスではなくBroadcastReceiverについて話しているのですが、それでも当てはまると思います。

于 2012-04-18T10:10:00.227 に答える