Time of Update: 2018-12-03
安裝儲存於SDCard的APK包很順利,但如果恰巧手機沒SDCard,將APK包下載到/data/data/<app_package>/下後,再用之前的方式安裝,一直提示"There is a problem parsing the package"。好吧,悲劇的程式員在需求至上的原則下又要解決此問題了。1.準備以上次寫過的斷點續傳的代碼[CSDN]為例,將APK包下載存放路徑改為"/data/data/<app_packages>/apps/": public
Time of Update: 2018-12-03
嚴正聲明 本人本著技術開放,思想分享的目的,撰寫本文。文章僅供參考之用,請勿使之於非法或有害於社會和諧之用。Sodino2011-01-24 Android上能不能實現卸載時提示呢,比如卸載某某軟體時,做個使用者調查卸載的原因。我以前想著是的不行的,以前的想法是:Windows上卸載時能實現此功能是因為有些程式的卸載是自己實現的,非系統操作。但android上目前來說還不支援,系統卸載時,還沒發現有啥介面可以和目標卸載程式互動。呵呵,今天鼓搗LogCat,發現還是可以的。實現基礎是:
Time of Update: 2018-12-03
不多說,,見代碼。 package lab.sodino.menutest;import android.content.Context;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.util.AttributeSet;import android.view.InflateException;import
Time of Update: 2018-12-03
監聽SMS發送狀態的例子網上雖然有,但還是太雜了不完全。自己寫了個。簡訊服務中心號碼的擷取是通過SmsMessage.getServiceCenterAddress()方法獲得。也就是只能從已經儲存在你手機上的簡訊中擷取。本例子擷取簡訊服務號碼的思路是發送一個自訂字串到10086去,攔截10086下行的簡訊從中讀取簡訊服務號碼。測試後發現雖然在本手機卡為深圳號,但收到的簡訊服務中心號碼卻是佛山的。但至少知道是處於哪個省了。全國簡訊服務中心號碼詳見:http://zdm2008.blog.163.
Time of Update: 2018-12-03
寫這例子的初衷是想模仿通訊錄列表,實現了一些效果,也沒法做到100%相像,自己也認為還有一些不足(存在些記憶體上的浪費)。這個階段先這樣了,代碼量比較大,就不貼代碼了,只上。源碼:http://download.csdn.net/source/3245470如下: 1.實現根據字母進行分類。2.實現快速滑動及修改快速滑動條的表徵圖。3.實現快速滑動時的字母提示。4.實現快捷操作框及其的動畫顯示/隱藏,上箭頭與下箭頭的選擇性顯示及位置匹配。5.順便做了個自訂Dialog和完整的發送郵件的實現(
Time of Update: 2018-12-03
Android對國際化與多語言切換已經做得不錯了,一個應用只要命名相應語系的values-[language]檔案夾,通過“設定”→“語言&鍵盤”→“選擇語言”即可實現應用多種語言的切換。 但如何在應用裡自己實現?搜尋過發現網上有如下的做法: Resources res = getResources(); Configuration config = res.getConfiguration();
Time of Update: 2018-12-03
這兩天公司組織旅遊了,剛升級的SDK2.3隻是裝上了還沒細看。今天一看,呵呵,有收穫了。 2.3SDK的兩個新特點:1.剛安裝上2.3時,查看sdk目錄,發現在<SDK_PATH>/tools下新增了一檔案夾“proguard”,如,我就在想是不是Google終於官方對proguard考慮進去了。理論上,對java的混淆都是可以的,但關鍵在於如何編寫proguard的混淆指令碼。 2.使用SDK2.3後,建立的工程下和之前相比,都會多了一個檔案“proguard.cfg”。一開
Time of Update: 2018-12-03
Android上的靜默安裝似乎是個很誘人的功能,好多人都問這個問題。今天分享下實現靜默安裝的兩種方法,但當看完這篇文章後,仍會讓一些人失望滴。 Android把所有的Permission依據其潛在風險(屬性名稱為protectionLevel)劃分為四個等級,即"normal"、"dangerous"、"signature"、"signatureOrSystem"。INSTALL_PACKAGES屬於後兩者。讓我們看一下官方文檔對後兩類的描述吧。 "signature":
Time of Update: 2018-12-03
參考自eoeApps。 在使用eoeApps時,發現它顯示的一些系統屬性像和用命令列中敲出來的一樣,好奇心大起。反編譯之,遂得。 關鍵點為使用ProcessBuilder來執行命令。另,系統屬性的詳細資料見:http://blog.csdn.net/jerryutscn/archive/2010/04/24/5519423.aspx package lab.sodino.textimage;import java.io.ByteArrayOutputStream;import
Time of Update: 2018-12-03
轉載請註明出處:http://blog.csdn.net/qinjuning 關於PackageManager和ActivityManager的使用 ,自己也寫了一些DEMO 了,基本上寫的線路參考了Settings模組下的
Time of Update: 2018-12-03
簡單點來說:Parcel就是一個存放讀取資料的容器, android系統中的binder處理序間通訊(IPC)就使用了Parcel類來進行用戶端與服務端資料的互動,而且AIDL的資料也是通過Parcel來互動的。在Java空間和C++都實現了Parcel,由於它在C/C++中,直接使用了記憶體來讀取資料,因此,它更有效率。 分析Binder機制中的用戶端與伺服器端進行實際操作ontransact()函數 ://參數說明:// code
Time of Update: 2018-12-03
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >
Time of Update: 2018-12-03
Time of Update: 2018-12-03
本文主要內容是如何讓Gallery和ImageSwitcher控制項能夠同步自動播放圖片集 ,看起來較難,然而,實現的方法非常簡單,請跟我慢慢來。總的來說,本文要實現的效果如:(效果不怎麼好) 本文是建立在以下兩篇bolg上的: 1、Android入門第十二篇之Gallery 2、Android
Time of Update: 2018-12-03
第一:我們先看下品質壓縮方法:private Bitmap compressImage(Bitmap image) {ByteArrayOutputStream baos = new ByteArrayOutputStream();image.compress(Bitmap.CompressFormat.JPEG, 100, baos);//品質壓縮方法,這裡100表示不壓縮,把壓縮後的資料存放到baos中int options = 100;while ( baos.toByteArray().
Time of Update: 2018-12-03
Notification —— 通知,是一種讓你的應用程式在不使用Activity的情況下警示使用者。它是看不見的程式組件(Broadcast Receiver,Service和不活躍的Activity)警示使用者有需要注意的事件發生的最好途徑。 Notification 是由NotificationManager(系統服務)統一管理的。 一般來說, 一個Notification應該傳送的訊息包括: 1
Time of Update: 2018-12-03
1、得到android的資源圖片的時候,例如你要隨機得到一張圖片,你可以將這些圖片的id放在一個集合中,但是如果圖片太多了,這樣還是很麻煩的,我們可以通過反射R檔案中的資源id即可:public void onClick_RandomFace(View view){ // 隨機產生1至9的整數 int randomId = 1 + new Random().nextInt(9); try { //
Time of Update: 2018-12-03
如果你喜歡開門見山的話,請直接跳到第三段,因為第二段描述的問題有些抽象,無視第二段是不影響理解的。
Time of Update: 2018-12-03
1、在你顯示ListView的那個activity中定義一個全域變數private Parcelable state;2、在初始設定適配器的時候,給state賦初值adapter = new RecordDetailAdapter(RecordDetailActivity.this, data,lv_record_detail);lv_record_detail.setAdapter(adapter);state = lv_record_detail.onSaveInstanceState();
Time of Update: 2018-12-03
在Android中建立ShortCut大概有兩種方法。第一種方法就是參照api demos中寫的那個,通過設定setResult(RESULT_OK, intent);來建立ShortCut,這種方式在稍後分析。本文以Broadcast方式方式來介紹Android中ShortCut的建立。在建立或刪除ShortCut的時候先需要在AndroidManifest.xml中增加兩個許可權<!-- 建立案頭捷徑的許可權 --><uses-permission