2013-11-27 32 views
1

我需要在4.4設備的短信服務提供商中插入1條短信,我的應用發送一次短信登錄。所以我不想看到這個登錄短信發送在Android 4.4設備的默認短信提供商(發送項目)。根據這個博客found hereAndroid 4.4短信:如何在Android 4.4中通過設置我的應用程序作爲默認短信應用程序將短信插入短信服務提供商

我們必須將我們的應用程序設置爲默認短信應用程序,然後再向SMS提供商插入消息,或者爲了避免向短信服務提供商插入已發送消息(用於登錄的1次短信)。我已經使用以下代碼將我的應用程序設置爲默認的短信應用程序。

Intent intent = new Intent(context, Sms.Intents.ACTION_CHANGE_DEFAULT); 
intent.putExtra(Sms.Intents.EXTRA_PACKAGE_NAME, context.getPackageName()); 
startActivity(intent); 

它不工作。任何人都可以爲我提出正確的方法來滿足上述要求。

+0

查看來自Android 4.4的SMS提供者的更改http://developer.android.com/about/versions/android-4.4.html#Behaviors –

+0

http://android-developers.blogspot.in/2013/10 /getting-your-sms-apps-ready-for-kitkat.html –

+0

我已經通過上述鏈接並試圖實現它,但它不工作。 – Mallik

回答

0
if (Build.VERSION.SDK_INT > 18) { 
String defaultSmsPackageName = Telephony.Sms.getDefaultSmsPackage(SwippSettingsActivity.this); 
Intent sendIntent = new Intent(Intent.ACTION_SEND); 
sendIntent.setType("text/plain"); 
sendIntent.putExtra(Intent.EXTRA_TEXT, "TEXT"); 
sendIntent.putExtra(Intent.EXTRA_DONT_KILL_APP, false); 
if (defaultSmsPackageName != null) { 
      sendIntent.setPackage(defaultSmsPackageName); 
} 
startActivity(sendIntent); 
} 
0

您需要更改清單以包含所需的接收者。儘管您沒有使用它們,但您需要定義該博客中提到的接收器,以便系統將您的應用視爲默認的短信候選人。