2016-06-11 58 views
0

我只有一项服务的应用程序。以下是我的服务代码,它无法调用设备的内置短信应用程序。服务无法通过内置应用程序发送短信

public class smsservice extends Service { 
private static final String TAG = "MyService"; 

@Override 
public IBinder onBind(Intent intent) { 
    return null; 
} 

@Override 
public void onCreate() { 
    super.onCreate(); 
    Log.d(TAG, "Service created."); 
} 

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    Log.d("TAG", "Service started."); 
    try { 

     String sb = (String) intent.getSerializableExtra("dest1"); 
     Intent sendIntent = new Intent(Intent.ACTION_VIEW); 
     sendIntent.putExtra("sms_body", sb); 
     sendIntent.setType("vnd.android-dir/mms-sms"); 
     startActivity(sendIntent); 

    } catch (Exception e) { 
     Toast.makeText(getApplicationContext(), 
       "SMS faild, please try again later!", 
       Toast.LENGTH_LONG).show(); 
     e.printStackTrace(); 
    } 

    return super.onStartCommand(intent, flags, startId); 
} 

@Override 
public void onDestroy() { 
    Log.d("slog", "onDestroy()"); 
    super.onDestroy(); 
} 

}

我已经包括在清单文件

<uses-permission android:name="android.permission.SEND_SMS" /> 

允许有我丢失的东西或者是它甚至有可能

回答

0

我有一个应用程序只有服务

首先,我希望你有一个计划来运行你的服务。默认情况下,应用程序中的任何内容都不会运行。

二,我希望你能买得起保安员。由于您没有任何活动,因此任何可能导致您的服务运行的唯一方式是如果您的服务已导出。除非你有一些特殊的技巧,这意味着任何应用程序都可以要求你的服务发送短信。如果这被利用,你的用户可能会跟着你,用枪和刀等等。

第三,Android设备无需支持通过ACTION_VIEW发送短信,更不用说使用一些无证的Intent附加功能。使用ACTION_SENDACTION_SENDTO

它无法调用设备的内置短信应用程序。

如果你看logcat的,我猜你会看到一个错误信息提的是,你需要添加FLAG_ACTIVITY_NEW_TASKIntent能够从服务启动。在致电startService()之前,您需要拨打Intent拨打addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)

这是因为在任何用户正在做的事情中间弹出一个活动通常是不恰当的。你不知道用户是否正在用他们的设备做些什么,突然间,你的活动占据了前台。用户也可以用枪和刀来打断他们的游戏,他们的电影,他们的导航说明等。因此,你应该聘请一些保安人员。

我有包括在清单文件

这是通过SmsManager发送短信的权限。你不应该需要它ACTION_SENDACTION_SENDTO

+0

我打算通过另一个应用程序通过明确的意图调用此服务。是的,该服务已导出。我需要在Intent调用addFlags(Intent.FLAG_ACTIVITY_NEW_TASK),然后在调用服务 –

+0

@ mine0901的应用程序中调用startActivity()或startService()之前调用addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) '你打算传递给'startActivity()'。 – CommonsWare

+0

非常感谢。它解决了我的问题。 –