2014-10-07 107 views
0

我試圖按照以下方式修改Android源代碼:當用戶發送SMS時,彈出窗口(以新活動的形式)從SmSManager類中顯示,詢問是否用戶確信他想發送SMS。如果他點擊確定,則發送消息。否則它不是。我已成功顯示彈出窗口,但現在我卡在onClick事件。我如何將活動中的數據傳遞給SmSManager類?將數據從Acttivity傳遞到SmsManager

編輯:代碼的要求

SmsManager.sendTextMessage()

Intent smsIntent = new Intent(Intent.ACTION_MAIN, null); 
smsIntent.setComponent(new ComponentName("com.package", "com.package.MyActivity")); 
smsIntent.addCategory(Intent.CATEGORY_LAUNCHER); 
smsIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
ActivityThread.currentApplication().getApplicationContext().startActivity(smsIntent); 

在MyActivity

final Button btn_ok = (Button) findViewById(R.id.btn_ok); 
    btn_ok.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      // What do I need to write here? 
      finish(); 
     } 
    }); 
+0

請分享一些代碼... – 2014-10-07 13:07:38

+0

在您添加代碼段之前,SmsManager中有什麼? – njzk2 2014-10-07 13:16:45

+0

SmsManager是Android的一個內置類,負責發送短信和數據信息。我在sendTextMessage()函數中添加了我的代碼 – Warmaster 2014-10-07 13:19:11

回答

0

我找到了一個解決辦法嘍。我在我的活動中將值存儲在SharedPreferences中,並在SmsManager類中檢索它。它適用於我,但我不知道從安全的角度來看它是否可以接受

0

你應該startActivity的結果:

這裏是SmsManager結果代碼: http://developer.android.com/reference/android/telephony/SmsManager.html

,在這裏你會發現一些理論看: How to manage `startActivityForResult` on Android?

+0

是的,我見過這些。但是在SO鏈接中,數據在兩個活動之間傳遞。我已經想過startActivityForResult – Warmaster 2014-10-07 13:23:07

+0

所以你不能startActivityfor結果STATUS_ON_ICC_SENT的結果,然後只是覆蓋onactivity結果? – user3482211 2014-10-07 17:16:28

+0

我的理解結果是STATUS_ON_ICC_SENT在SMS存儲和發送時發送。我想在發送短信之前顯示彈出窗口。無論如何,也許我沒有得到它。你能提供一個例子嗎? – Warmaster 2014-10-08 07:38:11