Android Phonegap App - 如何发送通知

时间:2011-12-23 12:40:40

标签: android cordova

有人可能会就如何在Android中设置状态栏通知提供一些建议吗?

我的技能组合都是基于设计/前端开发(因此使用phonegap)所以我是Eclipse的初学者。

我已阅读本教程 - http://androidforbeginners.blogspot.com/2010/02/how-to-create-status-bar-notifications.html,并已将代码粘贴到Android Manifest文件的活动区域。但我不太明白它是如何工作的。如果我现在将其编译为APK并将其安装在手机上 - 现在是否已准备好接收通知?如果是这样,我该如何发送它们,以及在哪里输入发送代码?

希望这很简单,因为我的老板希望我能在圣诞节前完成它!

为你的帮助干杯。 祝一切顺利 保罗

2 个答案:

答案 0 :(得分:3)

您想要状态栏通知吗?如果是的话...你很幸运...这是我已经为phonegap创建的一个插件。四处寻找如何在android中嵌入外部插件。

https://github.com/phonegap/phonegap-plugins/tree/master/Android/StatusBarNotification

答案 1 :(得分:2)

Here您可以找到有关通知源代码的更好解释。

通知可能是对某些事件的反应。例如,您可以使用一个按钮开发一个简单的应用程序。按此按钮时,状态栏中将显示通知。

关于发展。您应该安装Android SDK,创建设备的模拟器。此外,安装Android ADT非常有用 - 这是Eclipse的一个帮助开发Android应用程序的插件。之后,当您构建应用程序时,它将自动安装在模拟器上。

以下是如何进行简单通知的代码:

package your.package
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class AcNotificationTestMain extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    private static final int SEND_ID = 1;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button mBtnSend = (Button) findViewById(R.id.button1);
        mBtnSend.setOnClickListener(this);
    }

    @Override
    public void onClick(View arg0) {
        Log.v("","OnClick...");
        // Create an object of Notification manager 
        NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

        int icon = android.R.drawable.sym_action_email; // icon from resources
        CharSequence tickerText = "New Notification";   // ticker-text
        long when = System.currentTimeMillis();         // notification time
        Context context = getApplicationContext();      // application Context
        CharSequence contentTitle = "My notification";  // expanded message title
        CharSequence contentText = "Click me!";         // expanded message text

        Intent notificationIntent = new Intent(this, AcNotificationTestMain.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent, 0);

        // the next two lines initialize the Notification, using the configurations above
        Notification notification = new Notification(icon, tickerText, when);
        notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);


        mNotificationManager.notify(SEND_ID, notification);
    }
}

布局文件:

<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent">
<TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello"/>
<Button android:id="@+id/button1" android:text="@string/AcNotificationTest_BtnSendNotificationText" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
</LinearLayout>