android調用qq
㈠ Android實現類似qq,微信消息懸浮窗通知
實現方法:(需要開啟懸浮窗通知許可權、允許應用在其他應用上顯示)
懸掛式Notification,他是5.0中新增的,也就是API中的Headsup的Notification,可以在不打斷用戶操作的時候,給用戶通知
注意:在某些rom下使用headsup並不會顯示桌面懸浮窗,而是直接跳轉到相應的界面,親測華為,小米都是這種情況,這種情況下需要自己實現懸浮窗
具體實現:
㈡ 安卓手機app怎麼實現qq第三方登錄介面
申請APPID
進入QQ互聯的官網
在管理中心中創建移動應用。
導入Jar包
將下載得到的Jar包導入工程,並在AndroidManifest.xml文件中進行注冊。
<activity
android:name="com.tencent.tauth.AuthActivity"
android:noHistory="true"
android:launchMode="singleTask" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tencent100546930" />
</intent-filter>
</activity>
其中,<data android:scheme="tencent100546930" />中的數字需要替換成自己申請得到的APPID。
創建登錄介面
所有的SDK介面調用,都會傳入一個回調,用以接收SDK返回的調用結果。回調的主要介面有兩種:
(1)IUiListener:調用SDK已經封裝好的介面時,例如:登錄、快速支付登錄、應用分享、應用邀請等介面。
(2)IRequestListener:使用requestAsync、request等通用方法調用sdk未封裝的介面時,例如上傳圖片、查看相冊等。
在這里創建IUiListener介面實現相應的登錄授權操作:
private void onClickLogin() {
if (!mTencent.isSessionValid()) {
IUiListener listener = new IUiListener() {
/** 授權失敗的回調*/
@Override
public void onError(UiError arg0) {
// TODO Auto-generated method stub
Toast.makeText(LoginActivity.this, "授權失敗", 1000).show();
Message msg = new Message();
msg.arg1 = 2;
handler.sendMessage(msg);
}
/** 授權成功的回調*/
@Override
public void onComplete(JSONObject arg0) {
// TODO Auto-generated method stub
Toast.makeText(LoginActivity.this, "授權成功", 1000).show();
Message msg = new Message();
msg.what = 2;
msg.arg1 = 1;
msg.obj = arg0;
handler.sendMessage(msg);
}
/** 取消授權的回調*/
@Override
public void onCancel() {
// TODO Auto-generated method stub
Toast.makeText(LoginActivity.this, "取消授權", 1000).show();
Message msg = new Message();
msg.arg1 = 3;
handler.sendMessage(msg);
}
};
mTencent.login(this, SCOPE, listener);
} else {
mTencent.logout(this);
}
}
其中,mTencent為QQSDK主要實現類Tencent類的實例。
// Tencent類是SDK的主要實現類,開發者可通過Tencent類訪問騰訊開放的OpenAPI。
// 其中APP_ID是分配給第三方應用的appid,類型為String。
mTencent = Tencent.createInstance(APP_ID, this.getApplicationContext());
將handler進行實例化
handler = new Handler(this);
並將類實現Callback介面,即可對上述類進行Handler的處理操作。
@Override
public boolean handleMessage(Message msg) {
// TODO Auto-generated method stub
switch (msg.arg1) {
case 1: { // 成功
JSONObject object = (JSONObject) msg.obj;
try {
openid = object.getString("openid").toString();
sBuilder.append("openid為:"+openid+"
");
access_token = object.getString("access_token").toString();
url = url + "?access_token="+access_token+"&oauth_consumer_key="+APP_ID+
"&openid="+openid+"&format=json";
new MyUrlThread(url.toString(), 2,sHandler).start();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
break;
case 2: { // 失敗
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
return false;
}
case 3: { // 取消
Toast.makeText(this, "", Toast.LENGTH_SHORT).show();
return false;
}
}
return false;
}
如果授權成功,即可得到返回的Openid。
從而,可以根據Openid調用騰訊所提供的官方介面,實現需要的操作。
㈢ Android第三方QQ登陸
Android實現第三方QQ登陸的開放流程為:
一. QQ登錄目前採用OAuth2.0標准協議來進行用戶身份驗證和獲取用戶授權。整個流程如下所述,這里比如一個應用A
可以使用QQ賬戶登陸。
1. 用戶訪問客戶端的應用,試圖操作用戶存放在服務提供方的資源。比如用戶用QQ賬戶登錄 應用 A程序,同時可以獲
得用戶昵稱頭像等保存在騰訊伺服器的用戶信息。
2. 輸入QQ賬號後,應用A後向服務提供方 (騰訊) (Request Token)。 請求一個臨時令牌
3. 服務提供方 (騰訊)(應用A)的身份後,授予一個臨時令牌。驗證客戶端
4. 客戶端(應用A)獲得臨時令牌後,將用戶引導至服務提供方(騰訊)的授權頁面請求用戶授權。在這個過程中將臨時令牌和客戶端的 回調連接發送給服務提供方(騰訊)。
5. 用戶在服務提供方(騰訊)的網頁上輸入用戶名和密碼,然後授權該客戶端(應用A)訪問所請求的資源。
6. 授權成功後,服務提供方(騰訊)引導用戶返回到客戶端(應用A)提供的回調頁面。
7. 客戶端(應用A)根據臨時令牌從服務提供方(騰訊)那裡獲取訪問令牌 (Access Token)。
8. 根據訪問令牌 (Access Token)獲得對應用戶身份的openid,
9. 然後客戶端(應用A)根據訪問令牌 (Access Token)與openid調用OpenAPI,來請求訪問或修改用戶授權的資源(比如昵稱用戶頭像等經過用戶授權的信息)。
10.拿到訪問令牌 (Access Token)之後,客戶端(應用A)可以保存起來,下次就不用再向服務提供方(騰訊)請求授權,直接就可以使用該賬戶授權的資源,相當於保存了用戶名和密碼,但是真正的用戶名和密客戶端(應用A)並不知道。
比如一個信息發布的網站,可以使用QQ賬號登錄,用戶通過安全頁面輸入QQ賬號信息後顯示登陸成功,同時詢問用戶
是否允許該網站使用用戶的一些信息,比如資料,相冊等,經過用戶確認後該網站可以拿到用戶授權的信息。同時拿到訪
問令牌 (Access Token),以後該網站就可以用這個訪問獲得該用戶的這些授權信息,而不需要再次輸入賬戶信息。一般該
網站也要提供刪除這個訪問令牌的入口。這樣就可以很方便的把用戶願意提供的信息拿到這個信息發布網站使用,而用戶
不需要再次登記錄入。
二.QQ 為Android移動設備開發提供QQ登陸的開發包,對上述的過程進行的封裝,對開發者來說可以方便的使用。要真正開發一個使用QQ賬戶登錄的App,就需要在騰訊社區開放平台注冊應用, 申請對應的 appid 和appkey ,這個開發App 時候要用到。
1. 可以在騰訊開放API站點下載最新的QQ登錄API庫文件和Demo。
2.下載後的Demo工程如下,導入了庫文件tencent_openapi.jar如下圖一所示。
Demo介紹了兩種登陸方式,手機瀏覽器和WebView,傳入不同的參數,進入不同的登錄方式,然後輸入賬戶信息後會
根據用戶選擇返回不同的結果。開發者可以參考這些對應的代碼即可完成授權登錄的功能開發。
㈣ 怎麼讓Android程序一直後台運行,像QQ一樣不被殺死
強烈建議不要這么做,不僅僅從用戶角度考慮,作為Android開發者也有責任去維護Android的生態環境。現在很多Android開發工程師,主力機居然是iPhone而不是Android設備,感到相當悲哀。
從技術角度概括一下現在普遍的防殺方法Service設置成START_STICKY,kill 後會被重啟(等待5秒左右),重傳Intent,保持與重啟前一樣通過 startForeground將進程設置為前台進程,做前台服務,優先順序和前台應用一個級別,除非在系統內存非常缺,否則此進程不會被 kill雙進程Service:讓2個進程互相保護,其中一個Service被清理後,另外沒被清理的進程可以立即重啟進程QQ黑科技:在應用退到後台後,另起一個只有 1 像素的頁面停留在桌面上,讓自己保持前台狀態,保護自己不被後台清理工具殺死在已經root的設備下,修改相應的許可權文件,將App偽裝成系統級的應用(Android4.0系列的一個漏洞,已經確認可行)Android系統中當前進程(Process)fork出來的子進程,被系統認為是兩個不同的進程。當父進程被殺死的時候,子進程仍然可以存活,並不受影響。鑒於目前提到的在Android-Service層做雙守護都會失敗,我們可以fork出c進程,多進程守護。死循環在那檢查是否還存在,具體的思路如下(Android5.0以下可行)用C編寫守護進程(即子進程),守護進程做的事情就是循環檢查目標進程是否存在,不存在則啟動它。在NDK環境中將1中編寫的C代碼編譯打包成可執行文件(BUILD_EXECUTABLE)。主進程啟動時將守護進程放入私有目錄下,賦予可執行許可權,啟動它即可。聯系廠商,加入白名單
㈤ 正在使用qq for android是什麼意思
其實很簡單,不需要像他們說的那麼復雜,手機功能有安卓的還有塞班的。android其實就是用安卓功能的手機上線。