2013-10-22 54 views
2

与Android Developers http://android-developers.blogspot.pt/2013/10/getting-your-sms-apps-ready-for-kitkat.html最近的帖子一致,我试图准备我的应用程序到新的android版本,但遇到了一个问题,他们建议创建一个对话框让用户设置应用程序为默认的应用程序来处理SMS的:准备安卓手机短信应用程序KitKat

Android开发者发布

public class ComposeSmsActivity extends Activity { 

@Override 
protected void onResume() { 
    super.onResume(); 

    final String myPackageName = getPackageName(); 
    if (!Telephony.Sms.getDefaultSmsPackage(this).equals(myPackageName)) { 
     // App is not default. 
     // Show the "not currently set as the default SMS app" interface 
     View viewGroup = findViewById(R.id.not_default_app); 
     viewGroup.setVisibility(View.VISIBLE); 

     // Set up a button that allows the user to change the default SMS app 
     Button button = (Button) findViewById(R.id.change_default_app); 
     button.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       Intent intent = 
         new Intent(Telephony.Sms.Intents.ACTION_CHANGE_DEFAULT); 
       intent.putExtra(Telephony.Sms.Intents.EXTRA_PACKAGE_NAME, 
         myPackageName); 
       startActivity(intent); 
      } 
     }); 
    } else { 
     // App is the default. 
     // Hide the "not currently set as the default SMS app" interface 
     View viewGroup = findViewById(R.id.not_default_app); 
     viewGroup.setVisibility(View.GONE); 
    } 
} 

}

代码本身非常简单,b ut我无法访问Telephony.Sms.getDefaultSmsPackage,因为它表示Telephony无法解析,而且找不到可以解决该问题的任何导入或声明。

任何人都可以请帮忙吗?

回答

2

android.provider.Telephony根本不存在(截至API 18-4.3)。

这个类将在4.4(大概是API 19)中添加,并且该博客文章突出显示了一旦新API发布后应该进行的更改,以便在时机到来时不会感到惊讶。

从帖子的末尾:

为了帮助您做出改变,我们很快就会提供Android 4.4系统,让您编译并在Android 4.4测试更改所需的SDK组件。

不要忘了你应该把这段代码封装在API版本检查中,这样你就不会遇到没有这个类的旧版本的问题。

+0

是的,你是正确的!我只是错过阅读后的最后几行.. = \!我还是谢谢你! – Pmsc

2

此更改将打破所有短信拦截应用程序。 “请注意,从Android 4.4开始 - 您的应用程序尝试中止SMS_RECEIVED_ACTION广播将被忽略,因此所有感兴趣的应用程序都有机会接收它。”

你认为有办法解决这个问题吗?

也许至少在根?

-2

显然有根访问权限。最新版本的Cerberus应用声称要这样做。现在

,如果只有我知道他们是如何做到这一点:(

+1

这似乎是一个评论而不是一个独立的答案 – laalto

+0

这是对我的答案的评论我在Cerberus应用程序/网站上没有看到任何关于此的内容,所以如果你能提供一个很棒的链接吗 – user961186

+0

我看到的是一些评论Play商店显示器的最近更改部分唉,他们似乎没有任何一种公共更改日志,所以此评论早已消失 我记得他们做了一些更改以修复Kit Kit下的SMS处理为根植设备。 在试图找到对此的一些参考时,我偶然发现了他们试图让它工作的讨论。 https://groups.google.com/forum/#!topic/cerberus-support-forum/2QtflFm6xMU – kencorbin