android c2dm编程示例

2024-02-23

我是 Android 应用程序开发新手。我正在使用 c2dm 开发 Android 应用程序。谁能告诉我如何从 c2dm 接收应用程序的注册 ID。请告诉我详细的例子和解释


public class C2dmEx extends Activity
{


static TextView mytext = null;
Context context = null;
Intent intent = null;



@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mytext = (TextView) findViewById(R.id.mytext);  
    mytext.setText("app started");


    Intent registrationIntent = new Intent("com.google.android.c2dm.intent.REGISTER");
    registrationIntent.putExtra("app", PendingIntent.getBroadcast(this, 0, new Intent(), 0)); 
    registrationIntent.putExtra("sender","your Mail Id");
    startService(registrationIntent);

    mytext.setText("Grabbing your device registration ID.....");

    Log.i("Recieve","1");

  }
}



public class C2DMReceiver extends  BroadcastReceiver
{

//private CustomerBean customer = null;
private RegisterManager reg = null;
private C2dmEx ex = null;
int UserId = 0;
private boolean auth = false;
private CustLogin cl = null;

public C2DMReceiver()
{

    cl = new CustLogin();
}

@Override
public void onReceive(Context context, Intent intent)
    {
        Log.i("Recieve","2");
        C2dmEx.mytext.setText("Intent Received!");
        if (intent.getAction().equals("com.google.android.c2dm.intent.REGISTRATION"))
        {
            handleRegistration(context, intent);
        } 
        else if (intent.getAction().equals("com.google.android.c2dm.intent.RECEIVE")) 
        {
            handleMessage(context, intent);
        }
     }

    private void handleRegistration(Context context, Intent intent)
    {

        String registration = intent.getStringExtra("registration_id"); 
        if (intent.getStringExtra("error") != null)
        {
           C2dmEx.mytext.setText("There was an error with your device registration!");
            // Registration failed, should try again later.
        } 
        else if (intent.getStringExtra("unregistered") != null)
        {
            // unregistration done, new messages from the authorized sender will be rejected
           C2dmEx.mytext.setText("You have been unregistered!");
        } 
        else if (registration != null) 
        {
           // Send the registration ID to the 3rd party site that is sending the messages.
           // This should be done in a separate thread.
           // When done, remember that all registration is done.

        //  UserId = customer.getId();
        //  Log.i("id",String.valueOf(UserId));

            String RegId = registration; 
            Log.i("reg",String.valueOf(RegId) );
            C2dmEx.mytext.setText("Your registration code is: " + RegId);





        }
    }

    private void handleMessage(Context context, Intent intent)
    {
        C2dmEx.mytext.setText("You have been alerted!");
    }


}

和你的清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mmp.geopon"
    android:versionCode="1" 
    android:versionName="0.1">

    <application android:icon="@drawable/icon" android:label="@string/app_name">

        <activity android:name=".C2dmEx"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <receiver android:name=".C2DMReceiver" android:permission="com.google.android.c2dm.permission.SEND">

         <intent-filter>
                  <action android:name="com.google.android.c2dm.intent.RECEIVE" />
                 <category android:name="com.mmp.geopon" />
          </intent-filter>

        <intent-filter>
              <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
              <category android:name="com.mmp.geopon" />
         </intent-filter>

     </receiver>


</application>

<uses-sdk android:minSdkVersion="8" />
<permission android:name="com.mmp.geopon.permission.C2D_MESSAGE" android:protectionLevel="signature" />
 <uses-permission android:name="com.mmp.geopon.permission.C2D_MESSAGE" />
  <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>

</manifest>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android c2dm编程示例 的相关文章

  • 从队列更新活动的最佳方法

    我有一个LinkedBlockingQueue在我的 生产者 调解者 消费者 模型中的调解者中 Producer 首先更新将 Mediator 添加到 ActivityQueue 中 接下来 消费者 活动在队列中等待 侦听并获取下一个项目
  • 主题以编程方式设置。如何重新加载 Activity 来应用

    如何在不重新启动整个应用程序的情况下应用主题 如果我这样做startActivity getIntent finish 活动退出并且不重新启动 是否可以简单地重新启动 重新创建活动来应用主题 它的顺序不正确 finish intent ne
  • 将roottools.jar导入Android Studio

    我正在尝试从这里导入 roottools https code google com p roottools https code google com p roottools jar 文件 到 Android Studio 项目 到目前为
  • “此版本中使用了已弃用的 Gradle 功能,使其与 Gradle 7.0 不兼容。” -反应-原生

    当我尝试运行反应本机应用程序时 我遇到此错误react native run android 我无法安装该应用程序 我正在尝试构建一个相机应用程序 我当前的react native版本 0 62 0 React cli版本 2 0 1 De
  • 在Android中将半径边框绘制到imageview或textview的一个角落

    我需要在我的应用程序中为图像视图或文本视图绘制边框 但我只需要在一个角落绘制它 就像图像一样 我做了一个形状 但我在所有 4 个边上都有边框
  • Android浏览器上的Web应用程序宽度问题

    所以到目前为止我只在 Android 浏览器上遇到过这个问题 基本上我的网站几乎一直运行良好 而且我还没有在 Dolphin Opera 或 Skyfire 上看到这个问题 但偶尔当我从手机主屏幕之一上的书签重新打开 Android 浏览器
  • Android中如何将文件写入raw文件夹?

    我认为这是一个非常基本的问题 我目前正在编写这样的文件 File output new File exampleout mid 现在 我想将文件写入 myproject res raw 我读到我可以通过将完整的网址放在 中来做到这一点 但
  • 通过我的应用程序以编程方式插入新联系人,而不使用 Intent

    我正在使用一个应用程序 与手机联系人进行交互 我想将新联系人添加到我的手机联系人列表中 我已经尝试过以下代码 但它不起作用 void addContact Context ctx PreviewContactModel model Arra
  • Android-全屏视频视图

    我正在尝试使此 VideoView 以全屏模式显示 public class ViewVideo extends Activity private String filename private static final int INSER
  • 如何更改对话框的默认黑色暗淡背景“颜色”(而不是暗淡量)?

    这是随机显示的图像Dialog在网上找到的 我一直在实施一个自定义Dialog 我可以处理对话框上的几乎所有内容 除了对话框本身下方的默认黑色昏暗背景之外 但在其后面的整个屏幕上 基本上我想改变它color和阿尔法值 我一直在 StackO
  • 无论如何,要控制宋何时选择Android.bp,何时不选择?

    使用新的构建系统 即 Soong 安卓取代Android mk with Android bp 还有 Android Q 及以上版本 Soong将选择所有Android bp文件 无论所有文件都存在于何处 早些时候 对于 2 级和 3 级模
  • 如何将 Google Now 搜索栏添加到我的应用程序中?

    谷歌刚刚将其搜索栏从 Google Now 引入到了 Play 商店应用程序中 如下面的 gif 所示 如何将这个操作栏搜索栏实现到我自己的应用程序中 我想要 style 汉堡动画 从工具栏按钮访问 麦克风按钮 对棒棒糖设备的连锁反应 我已
  • 返回主要活动(意图)时传递数据我做错了什么?

    我是安卓新手 这可能是最简单的问题 但我不明白这里出了什么问题 我试图创建一个通过意图传递值的基本示例 因此 当我关闭第二个活动时 我需要将数据传递到主活动 这是代码 意图测试1 主要活动 public void onClick View
  • 取消通知

    我使用Onesignal推送通知 需要取消所有onPause和onResume的通知 NotificationManager notificationManager NotificationManager getApplicationCon
  • 使用 Glide 库设置图像加载完成后进度条的可见性

    您好 我想要一个图像进度条 该进度条将在图像加载时显示 但当图像加载完成时 我想将其设置为消失 早些时候我为此使用了毕加索库 但我不知道如何将它与 Glide 库一起使用 我知道有一些资源就绪功能 但我不知道如何使用它 谁能帮我 毕加索图书
  • 为什么 ExpandableListView 更改 ChildView 设置(Android)?

    我对使用 ExpandableListView 有疑问 就我而言 我有两个组视图和两个子视图 而子视图由一个带有多个按钮 文本视图等的相对布局组成 例如 当首先扩展第二组并对视图持有者进行一些更改并随后扩展第一组时 先前所做的更改也会自动应
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • 获取当前图片在图库中显示的位置

    在我的应用程序中 我有一个图片库 但我想检测当前显示图像的位置 例如 当我启动我的活动时 位置是 0 但是当我在图库中滚动时 我想获取当前显示图像的位置 我尝试过 OnFocusChanged OnItemClicked 但只有当我单击图库
  • Android BLE 扫描永远找不到设备

    几天以来 我尝试在我的应用程序中实现 BLE 连接 我知道我尝试连接的设备功能齐全 因此问题一定是我的代码 我用BluetoothLeScanner startScan 方法 但回调方法永远不会被调用 public void startSc
  • 进程被杀死后不会调用 onActivityResult

    我有一个主要活动 Main 和另一个活动 Sub 由 Main 调用 startActivityForResult new Intent this SubActivity class 25 当我在 Sub 时 我终止该进程 使用任务管理器或

随机推荐

  • 跳过错误“文档上次打开时发生严重错误”

    是否可以跳过错误 文档上次打开时发生严重错误 我使用 Excel 打开 Word 文件 我想防止出现这种情况 例如电脑在运行宏时重新启动 后来Word认为文件有问题 但我始终确信我的模板文件没问题 我使用只读方法 跳过意味着用 VBA 选择
  • 使用 log4j 记录到数据库

    由于在 log4j 中javadoc http logging apache org log4j 1 2 apidocs org apache log4j jdbc JDBCAppender html is 警告 这个版本的 JDBCApp
  • 使用 Bottle 将列表从 python 传递到 js 的最佳方法是什么?

    我使用 Bottle 作为 Web 服务器 需要将 python 列表传递给 javascript 当我只执行 myList 时 Bottle 会对列表中的字符串转义单引号并将其显示为 039 反过来 JS 对它所得到的结果也不是很满意 我
  • 嵌入式二进制验证实用程序错误

    从昨天开始 Xcode 在尝试在我的 iPhone 上运行我的 WatchKit 应用程序时做了一些愚蠢的事情 它给了我错误 嵌入式二进制验证实用程序错误 错误 警告 是一个目录 它不是很有帮助 而且似乎在抱怨我的 Watchkit 扩展目
  • 如何在maven配置中正确指定jcenter存储库?

    在 Gradle 中 我只需添加 repositories jcenter 在 maven pom xml 中执行相同操作的最简单且正确的方法是什么 或者我在哪里可以获得 jcenter 存储库的正确 url 您必须像下面这样定义setti
  • (何时)m2crypto 会移植到 Python3 吗?

    m2crypto 是否正在向 Python3 移植 我将开始一个需要跨平台 跨语言加密的新玩具项目 m2crypto 看起来像是可行的方法 但我宁愿使用 Py3 以避免必须在任何地方显式转换为 UTF8 该库的移植是否正在进行中 代码位于h
  • 升级到 OS X Mavericks 后 Python 出现奇怪问题

    将我的 OS X Lion 升级到 Mavericks 后 我遇到了一些奇怪的问题 起初 它给了我分段故障 or 总线错误 经过一番搜索后 我发现它与readline图书馆 该解决方案描述为bugs python org curl O ht
  • alpine 包 py-pip 丢失

    我尝试使用 Docker compose 文件在我的 alpine 中安装 python pip 但出现以下错误 ERROR unsatisfiable constraints py pip missing required by worl
  • React 中的类变量与 ES6

    这个问题可能已经在其他地方得到了回答 但在标记为重复之前 请帮助我解决这个问题 我指的是使用react和d3的以下codepen https codepen io swizec pen oYNvpQ https codepen io swi
  • 滚动查看并刷新内容

    我使用以下用户界面 父级相对布局parentLayout尺寸为 800x600 宽 x 高 第二个相对布局childLayout 它是父布局的子布局 它的尺寸为 800x1000 即它大于父布局 parentLayout addView c
  • 在 xampp windows 中安装 Yaml

    我正在尝试安装YAML http www yaml org in XAMPP windows 64 bit 从以下位置下载了 dll 文件http pecl php net package yaml 1 1 1 windows http p
  • 如何使用子进程popen Python [重复]

    这个问题在这里已经有答案了 Since os popen正在被取代subprocess popen 我想知道如何转换 os popen swfdump tmp filename swf d to subprocess popen I tri
  • PHP ini file_get_contents 外部 url

    我使用以下 PHP 函数 file get contents http example com 每当我在某个服务器上执行此操作时 结果都是空的 当我在其他地方执行此操作时 结果就是页面的内容是什么 然而 当我在结果为空的服务器上 在本地使用
  • iOS 启动故事板:如何更改选项卡栏的色调颜色?

    我在做什么 使用 启动故事板 它非常简单 并且包含一个默认的 UITabBarController 我已在启动情节提要以及我的应用程序中将选项卡栏的 tintColor 设置为红色 我使用的是 Xcode 7 iOS 9 什么不起作用 启动
  • 为什么“IN”查询标签在sql存储过程中的成本如此之高?

    如何改善我的性能问题 我有一个带有 IN 的 sql 查询 我猜 IN 会造成一些代价高昂的性能问题 但我需要索引我的 sql 查询吗 Mysql查询 SELECT p ReferencedxxxId FROM Common xxxRefe
  • 插槽算作 Azure 中的 VM 吗?

    我目前有一个通过应用服务免费计划部署到 Azure 的 Web 应用程序 作为上线的一部分 我有兴趣转向使用插槽 这主要是因为它使我能够将新代码部署到暂存中 然后在经过验证后无缝切换 现在 要使用插槽 我知道我需要标准计划 并且该计划至少需
  • 如何通过 Gmail API 发送电子邮件?去

    我正在尝试通过以下方式发送电子邮件谷歌邮箱API https developers google com gmail api v1 reference users messages send using Go http golang org
  • python 导入应该花这么长时间吗?

    对于以下命令 time python test py 在此脚本上 test py import numpy as np from math import import matplotlib pyplot as plt import matp
  • 如何设置$_GET变量

    我如何设置变量 GET函数将能够使用 无需提交表单action GET GET包含在 URL 中传递给脚本的键 值 如果您有以下网址 http www example com test php a 10 b plop Then GET将包含
  • android c2dm编程示例

    我是 Android 应用程序开发新手 我正在使用 c2dm 开发 Android 应用程序 谁能告诉我如何从 c2dm 接收应用程序的注册 ID 请告诉我详细的例子和解释 public class C2dmEx extends Activ