当前位置:操作系统 > 安卓/Android >>

Android与人人网连接实例:我在听

 目前,社交网络概念正火。而手机最初设计的目的正是让人们进行通信。人人网作为中国最大的社交网站,用户数量众多,本文通过一个简单的小程序:“我在听”向大家展示renren api的使用。
首先介绍一下“我在听”。功能:在用户听歌时,在不需要用户进行额外操作的情况下,根据用户正在听的曲目,以发状态的形式同步至人人网。在安装完“我在听”之后,点击使用人人网登录,输入账号密码,登录成功后,选择是否自动同步,如果此时用户打开了网络,那么只要用户通过自带的播放器听歌,就会自动发布状态,例如:我在听张国荣的《倩女幽魂》。
       下面开始介绍开发过程;
首先,在人人 api页面http://dev.renren.com/ 里先登录,然后创建一个android应用。填写完表单,创建完成后,可以获得人人给你的唯一标志:
应用ID:xxxxxxx
API Key:xxxxxxxxxxxxxxxxxxxxxxx
Secret Key:xxxxxxxxxxxxxxxxxxxxxx
这三串字符串用于标志你的应用。
 
下面介绍如何获取用户当前正在听的歌的信息:
当系统默认的播放器开始播放下一首歌时,会发出一个广播(intent中包含歌曲名,艺术家等信息),我们只要定义一个接收这个广播的广播接收器,并且从intent中抽取出需要的信息即可。
 
AndroidManifest.xml
[html] view plaincopyprint?
1. <span style="font-size:16px;"><?xml version="1.0" encoding="utf-8"?> 
2. <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
3.     package="com.renoqiu" 
4.     android:versionCode="1" 
5.     android:versionName="1.0" > 
6.     <uses-sdk android:minSdkVersion="10" /> 
7.     <uses-permission android:name="android.permission.INTERNET" /> 
8.     <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
9.     <application 
10.         android:icon="@drawable/ic_launcher" 
11.         android:label="@string/app_name" > 
12.         <activity 
13.             android:name=".IamListenActivity" 
14.             android:label="@string/app_name" > 
15.         </activity> 
16.         <activity 
17.             android:name=".SettingActivity" 
18.             android:label="@string/app_name" > 
19.             <intent-filter> 
20.                 <action android:name="android.intent.action.MAIN" /> 
21.                 <category android:name="android.intent.category.LAUNCHER" /> 
22.             </intent-filter> 
23.         </activity> 
24.         <receiver android:name=".MusicBroadcastReceiver"> 
25.             <intent-filter> 
26.                 <action android:name="com.android.music.metachanged"></action> 
27.             </intent-filter>             
28.         </receiver> 
29.         <service android:name=".PushStatusService" > 
30.             <intent-filter> 
31.                 <action android:name="com.renoqiu.pushstatus" /> 
32.             </intent-filter> 
33.         </service> 
34.     </application> 
35. </manifest> 
36. </span> 
 
根据main.xml可知,我们定义了类MusicBroadcastReceiver捕捉action名为com.android.music.metachanged的广播。
 
src/com/renoqiu/ MusicBroadcastReceiver.java

[java] view plaincopyprint?
1. <span style="font-size:16px;">package com.renoqiu; 
2.  
3. import android.content.BroadcastReceiver; 
4. import android.content.Context; 
5. import android.content.Intent; 
6. import android.os.Bundle; 
7.  
8. public class MusicBroadcastReceiver extends BroadcastReceiver { 
9.     private static final Object SMSRECEIVED = "com.android.music.metachanged"; 
10.     @Override 
11.     public void onReceive(Context context, Intent intent) { 
12.         if(intent.getAction().equals(SMSRECEIVED)){ 
13.             String trackName=intent.getStringExtra("track"); 
14.             String artist=intent.getStringExtra("artist"); 
15.  
16.             Intent pushStatusIntent = new Intent(); 
17.             pushStatusIntent.setAction("com.renoqiu.pushstatus"); 
18.             Bundle myBundle = new Bundle(); 
19.             myBundle.putString("trackName", trackName); 
20.             myBundle.putString("artist", artist); 
21.             pushStatusIntent.putExtras(myBundle); 
22.             context.startService(pushStatusIntent); 
23.         } 
24.     } 
25. } 
26. </span> 
 
在类MusicBroadcastReceiver中我们抽取了歌曲名和艺术家名,并且调用context.startService()方法创建了一个service。
 
src/com/renoqiu/ PushStatusService.java

[java] view plaincopyprint?
1. <span style="font-size:16px;">package com.renoqiu; 
2.  
3. import android.app.Service; 
4. import and

补充:移动开发 , Android ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,