2012-10-16 19 views
0
發送電子郵件
package com.testing.email; 

import android.app.Activity; 
import android.content.ContentResolver; 
import android.content.Intent; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.provider.ContactsContract; 
import android.provider.ContactsContract.CommonDataKinds.Phone; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 

public class AndroidEmailActivity extends Activity implements OnClickListener{ 
/** Called when the activity is first created. */ 
String msg = "**********Backup Phone Contacts**********\n\n"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    Button send = (Button)findViewById(R.id.button1); 
    send.setOnClickListener(this); 
} 

public void onClick(View view){ 

    ContentResolver cr = getContentResolver(); 
    Cursor cursor = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null); 

    while(cursor.moveToNext()){ 
     String name = cursor.getString(cursor.getColumnIndexOrThrow(Phone.DISPLAY_NAME)); 
     String number = cursor.getString(cursor.getColumnIndexOrThrow(Phone.NUMBER)); 

     msg += name + "\t\t\t" + number + "\n";   
    } 

    String emailAddress = "[email protected]"; 
    String emailSubject = "Testing"; 
    String emailText = msg; 

    String emailAddressList[] = {emailAddress}; 

    Intent intent = new Intent(Intent.ACTION_SEND); 
    intent.setType("plain/text"); 
    intent.putExtra(Intent.EXTRA_EMAIL, emailAddressList); 
    intent.putExtra(Intent.EXTRA_SUBJECT, emailSubject); 
    intent.putExtra(Intent.EXTRA_TEXT, emailText); 
    startActivity(Intent.createChooser(intent, "Android apps send email:")); 
    } 
} 

時logcat的有錯誤「缺少unregisterReceiver()的調用」 Android中

10-16 13:18:41.435: E/ActivityThread(732): Activity com.android.internal.app.ChooserActivity has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()? 
10-16 13:18:41.435: E/ActivityThread(732): android.app.IntentReceiverLeaked: Activity com.android.internal.app.ChooserActivity has leaked IntentReceiver [email protected] that was originally registered here. Are you missing a call to unregisterReceiver()? 
10-16 13:18:41.435: E/ActivityThread(732): at android.app.LoadedApk$ReceiverDispatcher.<init>(LoadedApk.java:763) 
10-16 13:18:41.435: E/ActivityThread(732): at android.app.LoadedApk.getReceiverDispatcher(LoadedApk.java:567) 
10-16 13:18:41.435: E/ActivityThread(732): at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1043) 
10-16 13:18:41.435: E/ActivityThread(732): at android.app.ContextImpl.registerReceiver(ContextImpl.java:1030) 
10-16 13:18:41.435: E/ActivityThread(732): at android.app.ContextImpl.registerReceiver(ContextImpl.java:1024) 
10-16 13:18:41.435: E/ActivityThread(732): at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:341) 
10-16 13:18:41.435: E/ActivityThread(732): at com.android.internal.content.PackageMonitor.register(PackageMonitor.java:65) 
10-16 13:18:41.435: E/ActivityThread(732): at com.android.internal.app.ResolverActivity.onCreate(ResolverActivity.java:99) 
10-16 13:18:41.435: E/ActivityThread(732): at com.android.internal.app.ChooserActivity.onCreate(ChooserActivity.java:53) 
10-16 13:18:41.435: E/ActivityThread(732): at android.app.Activity.performCreate(Activity.java:4465) 
10-16 13:18:41.435: E/ActivityThread(732): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
10-16 13:18:41.435: E/ActivityThread(732): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
10-16 13:18:41.435: E/ActivityThread(732): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
10-16 13:18:41.435: E/ActivityThread(732): at android.app.ActivityThread.access$600(ActivityThread.java:123) 
10-16 13:18:41.435: E/ActivityThread(732): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
10-16 13:18:41.435: E/ActivityThread(732): at android.os.Handler.dispatchMessage(Handler.java:99) 
10-16 13:18:41.435: E/ActivityThread(732): at android.os.Looper.loop(Looper.java:137) 
10-16 13:18:41.435: E/ActivityThread(732): at android.app.ActivityThread.main(ActivityThread.java:4424) 
10-16 13:18:41.435: E/ActivityThread(732): at java.lang.reflect.Method.invokeNative(Native Method) 
10-16 13:18:41.435: E/ActivityThread(732): at java.lang.reflect.Method.invoke(Method.java:511) 
10-16 13:18:41.435: E/ActivityThread(732): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
10-16 13:18:41.435: E/ActivityThread(732): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
10-16 13:18:41.435: E/ActivityThread(732): at dalvik.system.NativeStart.main(Native Method) 

我正在開發,其中用戶能夠檢索回所有手機聯繫人當手機丟失的應用或者使用電子郵件被盜。我只是測試一些簡單的編碼,並嘗試檢索所有的聯繫人號碼,並將其放入一條消息併發送到一個定義的電子郵件地址。我正在使用Android模擬器來測試這一點,並且我已經在模擬器中爲實驗保存了5個示例聯繫人。但是,當我收到這個應用程序發送的電子郵件時,我收到了5個以上的聯繫電話號碼,並且有很多聯繫號碼不應該放在我的模擬器中。我重視我的代碼和logcat中,有人請幫我檢查一下...謝謝...

回答

0

有有這個問題具有一定的Android版本,更多的人:

Android bug

SO Question 1

SO Question 2

SO Question 3

和更多:)

+0

感謝您的鏈接...但我仍然混淆如何解決技術上? –

+0

你的應用不會因此崩潰,所以我想你可以放棄它? –

+0

或者我的編碼有什麼問題,因爲我只有5個聯繫人在模擬器中,應該只發送5個聯繫人到電子郵件,但我收到了很多電子郵件中的聯繫人,並且大部分聯繫人都不是來自模擬器。 。 –