android發送intent
㈠ 如何在Android中啟動JAVA程序
在Android中啟動JAVA程序其實有很多種方式,現總結如下
一、在Android應用程序中發送Intent啟動Android應用程序
這個方式最簡單,最常用。在此不在累述。關於Intent的更多內容請閱讀《Intent技術簡介》
二、在shell控制台通過am命令發送Intent來啟動Android應用程序
在Android的shell控制台通過am命令發送Intent來啟動Android應用程序
關於此的詳細內容請參考《Android命令am詳解》
三、在shell控制台直接通過davlikvm命令啟動一個JAVA程序。
該方式有個天生的缺點,即在其中,很多Android的JNI無法調用。因為Android的很多JNI其實是需要手動注冊的。
關於請參考《基本Dalvik VM調用》
四、在shell控制台直接通過運行app_process程序啟動一個JAVA程序
在app_process程序中,他會對Android的JNI進行手動注冊的,能很好的使用Android的API,因此通過運行app_process程序啟動一個JAVA程序,是一個比較完美的方式。app_process程序是一個C程序,它的源碼位於frameworks\base\cmds\app_process。
關於它的使用請參考《Android命令am詳解》以及shell腳本frameworks\base\cmds\am\am和frameworks\base\cmds\pm\pm
am腳本文件如下:
# Script to start "am" on the device, which has a very rudimentary# shell.#base=/systemexport CLASSPATH=$base/framework/am.jarexec app_process $base/bin com.android.commands.am.Am "$@"pm腳本文件如下:
# Script to start "pm" on the device, which has a very rudimentary# shell.#base=/systemexport CLASSPATH=$base/framework/pm.jarexec app_process $base/bin com.android.commands.pm.Pm "$@"CLASSPATH指定了你的程序的位置,com.android.commands.pm.Pm則說明了程序的入口為com.android.commands.pm.Pm,即入口函數main()所在的類,"$@"就是傳遞給main()函數的參數,只是這里"$@"本身又是個shell傳入的參數而已
需要注意的是CLASSPATH中的文件必須是dalvik文件格式的,關於此的轉換請參考《基本Dalvik VM調用》當然CLASSPATH中的文件可以是apk文件,只是你的apk中至少應該有個擁有main()入口函數的類。
轉載
㈡ Android廣播發送意圖許可權問題,求大神指點
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
㈢ Android系統中的Broadcast和Intent有什麼區別
Android系統中的Broadcast和Intent有什麼區別?
在Android系統中,Broadcast和Intent都是非常常見的概念和組件。雖然它們非常相似,但它們之間還是有很多區別的。在本文中,我們將探討Broadcast和Intent之間的區別。
Broadcast是一個事件機制,是一種基於消息傳遞的系統。通過其發送者發送消息,然後所有的接收者都可以監聽到這個消息並做出相應的反應。這種機制非常靈活,可以使應用程序間相互通訊,實現一些復雜的功能。
而Intent是一個攜帶數據(例如文本、圖像、視頻等)的對象。它通常用於在應用程序之間傳遞消息或數據,並指導Android系統執行特定的操作或啟動特定的組件(如Activity、Service或BroadcastReceiver)。Intent的一大優勢是它能夠啟動其他應用程序,以及讓其他應用程序啟動他們自己的Activity、Service或BroadcastReceiver。
可以將Broadcast看作是一種事件,而Intent則是一種數據傳遞的機制。Broadcast是一種非同步的,無法保證其他應用程序的接收者會及時接收到消息。相反,Intent則是一種同步的,可以確保數據在應用程序之間的傳輸是完整和准確的。
除此之外,Broadcast還可分為系統Broadcast和自定義Broadcast。系統Broadcast由Android系統負責發送和接收,並且通常只能被系統應用程序進行監聽和反應。而自定義Broadcast則是由開發人員自行創建和發送的,在應用程序之間廣播。
總的來說,Broadcast和Intent都有著自己的功能和優點。Broadcast通常用於事件機制的通知,而Intent則可以在應用程序之間傳遞數據和激活組件。對於開發人員來說,理解Broadcast和Intent之間的差異,可以幫助他們更好地實現復雜的應用程序和非常規場景的操作。
㈣ Android 收到intent後怎麼獲取到發送者的包名
broadcast發送的時候都是傳遞一個intent對象,這個intent對象就是傳給onReceive方法的那個intent.通過這個intent就可以獲取發送廣播的程序的包名,知道了包名就知道是哪個程序了。
ComponentName com = intent.getComponent();
String pkgName = com.getPackageName();
試試看行不行。。。
㈤ android怎麼才能傳遞多個參數和對象
activity之間傳遞參數你可以
ntent intent = new Intent();
intent.setClass(this, DetailActivity.class);
intent.putExtra("human", human);
intent.putExtra("method", method);
.....
有更多參數都可中圓以在這里put
startActivity(intent);
在相應的activity里可以弊彎這樣取傳過租培悶來的參數
getIntent().getExtras().getSerializable("human");
.......
㈥ Android Intent的作用,哪些類型的數據可以被傳遞
(1) 要激活一個新的Activity,或者讓一個現有的Activity執行新的操作,可以通過調用Context.startActivity()或者Activity.startActivityForResult()方法。這兩個方法需要傳入的Intent參數也稱為Activity Action Intent(活動行為意圖),根據Intent對象對目標Activity描述的不同,來啟動與之相匹配的Activity或傳遞信息。
(2) 要啟動一個新的服務,或者向一個已有的服務傳遞新的指令,調用Context.startService()方法或調用Context.bindService()方法將調用此方法的上下文對象與Service綁定。
Intent一旦發出,Android都會准確找到相匹配的一個或多個Activity、Service或Broadcast-Receiver作為響應。所以,不同類型的Intent消息不會出現重疊:BroadcastIntent消息只會發送給BroadcastReceiver,而絕不可能發送給Activity或Service。由startActivity()傳遞的消息也只可能發送給Activity,由startService()傳遞的Intent只可能發送給Service。
向下一個Activity傳遞數據(使用Bundle和Intent.putExtras)
Intent it = new Intent(Activity1.this, Activity2.class);
Bundle bundle=new Intent();
bundle.putString("name", "This is from MainActivity!");
it.putExtras("bd",bundle); // it.putExtra(「test」, "shuju」);
startActivity(it); // startActivityForResult(it,REQUEST_CODE);
㈦ android 開發 一個通過服務端內容自動發送簡訊到指定號碼
伺服器和手機端通信,如果要實時通信,就需要使用推送,自己寫的推送一般不夠好,還是使用專業推送比較好,國內的可以使用極光推送,網路推送等等,如果是國際的可以使用谷歌的google cloud message,或者使用友盟……友盟還是比較靠譜的。
然後手機發送簡訊只需要一個許可權,然後會有很簡單的代碼就可以發送簡訊了,而且,一般的第三發推送也可以給服務端發消息,所以你的要求就齊全了。
如果不是用第三方的向伺服器報告,也可以自己寫和伺服器的通信。
如果推送都要自己寫,那麼android的推送有3種方式,第一socket長連接,比較耗費手機資源和電……第二種輪詢,有一點點延遲,看你的實時性有多高……第三種,使用簡訊息,服務端要有簡訊網關,手機端則監聽手機簡訊資料庫,用這個的比較少,一般長連接比較多。
我的號碼就是我qq,有什麼問題可以進一步的問我,或者我沒時間的話也有很多android開發群 可以介紹給你 隨便問問題,有很多高人解答