如何注册我的 android 应用程序以解析网站

Posted

技术标签:

【中文标题】如何注册我的 android 应用程序以解析网站【英文标题】:How to register my android app to parse site 【发布时间】:2015-08-06 09:29:07 【问题描述】:

我应该如何注册我的 android 应用(或)设备以解析推送站点以获取通知。 现在我已连接到 GCM。 我无法先一步并使用 parse 注册我的设备...

【问题讨论】:

参考parse.com/tutorials/android-push-notifications sitepoint.com/creating-cloud-backend-android-app-using-parse 然后参考这个androidhive.info/2015/06/… 【参考方案1】:

根据我的经验多次试验和错误以及许多 SO 和 Parse 线程阅读,这是为标准推送通知实现官方 Parse SDK 的最佳方式。因此,我将引导您完成以下步骤:

    在app build.gradle文件中添加如下依赖,可以从Parse github空白项目或者Parse SDK从网站docs类别中获取最新版本。到目前为止的最新版本在这里:

    compile 'com.parse.bolts:bolts-tasks:1.3.0'
    compile 'com.parse:parse-android:1.11.0'
    

    在项目的Application类的onCreate()方法中添加如下类似快速指南的代码,相应地修改key --> 注意这两行必须加在super.onCreate();之后:

    // Enable Local Datastore.
    Parse.enableLocalDatastore(this);
    
    // Add your initialization code here
    Parse.initialize(this, "YOUR APPLICATION ID", "YOUR CLIENT KEY");
    ParseInstallation.getCurrentInstallation().saveInBackground();
    
    ParseUser.enableAutomaticUser();
    ParseACL defaultACL = new ParseACL();
    // Optionally enable public read access.
    // defaultACL.setPublicReadAccess(true);
    ParseACL.setDefaultACL(defaultACL, true);
    

    在您的 MainActivity 类中的 setContentView 之后添加以下行:

    ParseAnalytics.trackAppOpenedInBackground(getIntent());
    

    将 Parse 服务和接收器添加到 AndroidManifest.xml 中,紧接在 </application> 结束标记之前,并使提及的包名称与您的相同:

    <service android:name="com.parse.PushService" />
    <receiver android:name="com.parse.ParsePushBroadcastReceiver"
        android:exported="false">
      <intent-filter>
        <action android:name="com.parse.push.intent.RECEIVE" />
        <action android:name="com.parse.push.intent.DELETE" />
        <action android:name="com.parse.push.intent.OPEN" />
        </intent-filter>
    </receiver>
    <receiver android:name="com.parse.GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND">
      <intent-filter>
        <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
    
        <!--
          IMPORTANT: Change "com.parse.starter" to match your app's package name.
        -->
        <category android:name="com.parse.starter" />
      </intent-filter>
    </receiver>
    

    通常在打开 &lt;application&gt; 标记之前添加类似快速指南说明的权限,并使提到的包名称也与您的相同:

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
    
    <!--
      IMPORTANT: Change "com.parse.starter.permission.C2D_MESSAGE" in the lines below
      to match your app's package name + ".permission.C2D_MESSAGE".
    -->
    <permission android:protectionLevel="signature"
        android:name="com.parse.starter.permission.C2D_MESSAGE" />
    <uses-permission android:name="com.parse.starter.permission.C2D_MESSAGE" />
    

最后一步) 干得好!享受推动你的东西。 ;)

【讨论】:

【参考方案2】:

将以下代码添加到您的清单中

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />

 <permission
    android:name="$your_application_package.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

<uses-permission android:name="$your_application_package.permission.C2D_MESSAGE" />

<application
    android:name="$your_application_package.ParseApplication"
    android:allowBackup="true"
    android:icon="@drawable/contact_image"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <!-- Parse library -->
    <service android:name="com.parse.PushService" />

    <receiver android:name="com.parse.ParseBroadcastReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.USER_PRESENT" />
        </intent-filter>
    </receiver>
    <receiver
        android:name="com.parse.ParsePushBroadcastReceiver"
        android:exported="false" >
        <intent-filter>
            <action android:name="com.parse.push.intent.RECEIVE" />
            <action android:name="com.parse.push.intent.DELETE" />
            <action android:name="com.parse.push.intent.OPEN" />
        </intent-filter>
    </receiver>
    <receiver
        android:name="com.parse.GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <!-- IMPORTANT: Change "com.parse.starter" to match your app's package name. -->
            <category android:name="$your_application_package" />
        </intent-filter>
    </receiver>

你的 ParseApplication 应该是这样的

public class ParseApplication extends Application 
    @Override
    public void onCreate() 
        super.onCreate();
        //TODO: replace application_id and ClientKey with your parse credentials
        Parse.initialize(this, "application_id", "ClientKey");
        ParseInstallation.getCurrentInstallation().saveInBackground();
    

将 bolts-android-1.2.0 和 Parse-1.9.2 库添加到您的项目中。现在运行应用程序并检查解析仪表板,您会发现您的设备已注册。

【讨论】:

非常感谢大家...现在可以将通知从解析推送到我的应用程序【参考方案3】:

我刚刚从解析站点下载了一个示例推送应用程序...在该下载的解决方案中将有 2 个项目...1 个用于 ios,1 个用于 android...ios 不会直接推送...所以我们需要将我们的android项目作为启动项目并需要运行我们的应用程序...这样您的手机将通过您的解析站点检测并转到仪表板中的推送选项卡并选择发送推送...在文本框中写下您要推送的信息然后点击立即发送...这样推送信息就会出现在您的手机上

【讨论】:

以上是关于如何注册我的 android 应用程序以解析网站的主要内容,如果未能解决你的问题,请参考以下文章

(新)GCM 消息收到,但如何解析?

如何注册 android 设备以通过 App Engine 后端接收推送通知?

如何在android的城市飞艇中注册api?

如何在 Android 上从我的应用程序启动 URL?

使用解析注册后自动转发

Android集成华为推送教程