2017-04-27 43 views
11

我想從我的應用程序共享數據到其他應用程序,如短信或任何其他應用程序。我有一個應用程序,我需要發送或共享一些數據到應用程序,如短信或FB通訊。使用this鏈路穿過我可以打開應用程序,並使用此代碼添加數據轉換成文本框:如何在Android上的其他應用程序中觸發點擊或發送數據共享事件?

Intent sendIntent = new Intent(); 
    sendIntent.setPackage("com.sms or fb"); 
    sendIntent.setAction(Intent.ACTION_SEND); 
    sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send."); 
    sendIntent.setType("text/plain"); 
    startActivity(sendIntent); 

使用這個程序,我可以打開其他應用程序,並在文本區域,我的問題是增加價值,有什麼辦法通過我可以觸發點擊或發送事件發送自動消息到其他應用程序,如短信Facebook。如果是這樣,我怎麼看到谷歌應用程序,我用我的聲音發送嗨給我的WhatsApp聯繫,所以這種方法是谷歌應用程序可以發送消息和觸發事件使用我的聲音。我的問題是我怎樣才能觸發事件發送使用我的android代碼。如果有根系統在那裏,我也可以使用它。

沒有答案的,甚至接近我想要解決沒有答案值得賞金。

+0

「我知道當你使用谷歌應用語音命令時,他們可以打開應用併發送消息而不點擊」 - 這是因爲WhatsApp集成了Google的語音命令系統。 – CommonsWare

+0

你告訴我在哪裏可以找到哪個應用程序被集成,哪些不是。如果你知道如何告訴我,我可以通過編程來完成嗎? –

回答

1

有正常的第三方應用程序來模擬用戶交互沒有官方的API。坦率地說,我不希望我的應用程序被另一個應用程序遙控。根據您要控制的應用程序,如果這些應用程序向其他應用程序提供其服務或內容傳播器,則可能會有一些選項。但是如果存在的話,你需要諮詢他們的api文件。

+0

我在說如何谷歌應用程序打開應用程序,並單擊whatsapp或微信上的發送按鈕是否有任何方式,我可以打開應用程序,並把上面的代碼與文本我可以打開應用程序,並把文本只需要知道如何觸發點擊事件。 –

+0

正如我所說,沒有公共手段來模擬用戶交互,即觸發點擊事件 – Thomas

+0

如果我的設備是根源,那麼是否有可能 –

1

正如@Thomas所言。沒有官方的方式來告訴其他人該做什麼。 對於Google應用,第三方應用公開其Intent以在Google的應用中調用特定操作。可能你可以探索它是如何做到的。

但也有類似的應用程序暴露Intent觸發從第三方應用程序的操作一些可能的解決方案。

1

我想你需要捕獲google語音應用程序向whatsapp/facebook應用程序發射的意圖,並使用app中的相同意圖來檢查哪些意圖被觸發使用adb logcat -b事件。

但是我覺得即使你火一樣的意圖在接收應用程序中的安全檢查可能會阻止它這樣做。

你需要檢查的Facebook/WhatsApp的是否有公開可用的API做它。如果它是不是不可能的。

其他辦法 - 使用Uiautomator對其他應用程序進行點擊button.But這是棘手的實現,因爲你可能需要一個單獨的應用程序來監聽事件並觸發自動化代碼。

1

我不知道,如果它的工作原理,但有一個SMSButtler應用,該應用回信自動上receveid短信。好的是,該應用程序是開源的,你可以從這個Github post下載代碼。

我不能給你一個回答你的WhatsApp的問題,但我分析的代碼,我得到這個方法離開這裏:

要全自動發送短信,你首先需要創建一個SMSManager

SmsManager sms = SmsManager.getDefault(); 

,然後就發個短信

sms.sendTextMessage(destinationAddress, scAddress, text, sentIntent, deliveryIntent); 

參數:

  • destinationAddress將消息發送到
  • scAddress地址是服務中心的地址或無效使用當前的默認SMSC
  • text的郵件正文發送
  • sentIntent如果不爲null此消息成功發送或失敗時將廣播PendingIntent
  • deliveryIntent如果不是NULL,則當郵件傳遞給收件人時,這個PendingIntent是 廣播。狀態報告的原始pdu是 擴展數據(「pdu」)。

重要提示:使用此方法需要您的應用程序有 android.Manifest.permission_SEND_SMS許可。

注意:也有這個類的其他方法,你可以例如發送圖像或其他內容。

1

有一個網站/應用程序稱爲IFTTT(如果這樣的話),可以控制其他服務並向您發送警報/電子郵件等。 鏈接:https://ifttt.com/

1

如果您希望其他應用程序觸發應用程序中的事件,一般的方法包括兩個步驟:

  1. 您的應用需要提供API以下Android方式。

  2. 其他應用程序通過使用上述API與您的應用程序進行交互。

API的類型及其實現取決於應用程序的數據和功能。例如,您可以考慮使用Content Provider,Intend和Broadcast來提供API。

1

Android沒有提供通用的方式來遠程控制另一個應用程序,如你打算。你將不得不修改你想要控制的應用程序或Android系統本身。無論哪種方式,都不可能對系統或應用程序源代碼進行非平凡的修改。

相關問題