Showing
3 changed files
with
44 additions
and
29 deletions
1 | -<?xml version="1.0" encoding="utf-8"?> | ||
2 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" | 1 | <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
3 | package="com.example.talktalkspeak"> | 2 | package="com.example.talktalkspeak"> |
4 | 3 | ||
5 | <uses-permission android:name="android.permission.BLUETOOTH" /> | 4 | <uses-permission android:name="android.permission.BLUETOOTH" /> |
5 | + <uses-permission android:name="android.permission.RECEIVE_SMS"/> | ||
6 | + | ||
6 | <application | 7 | <application |
7 | android:allowBackup="true" | 8 | android:allowBackup="true" |
8 | android:icon="@mipmap/ic_launcher" | 9 | android:icon="@mipmap/ic_launcher" |
... | @@ -10,13 +11,29 @@ | ... | @@ -10,13 +11,29 @@ |
10 | android:roundIcon="@mipmap/ic_launcher_round" | 11 | android:roundIcon="@mipmap/ic_launcher_round" |
11 | android:supportsRtl="true" | 12 | android:supportsRtl="true" |
12 | android:theme="@style/AppTheme"> | 13 | android:theme="@style/AppTheme"> |
14 | + | ||
13 | <activity android:name=".MainActivity"> | 15 | <activity android:name=".MainActivity"> |
14 | <intent-filter> | 16 | <intent-filter> |
15 | <action android:name="android.intent.action.MAIN" /> | 17 | <action android:name="android.intent.action.MAIN" /> |
16 | - | ||
17 | <category android:name="android.intent.category.LAUNCHER" /> | 18 | <category android:name="android.intent.category.LAUNCHER" /> |
18 | </intent-filter> | 19 | </intent-filter> |
19 | </activity> | 20 | </activity> |
21 | + | ||
22 | + <receiver android:name="com.example.talktalkspeak.SmsReceiver" android:enabled="true" android:exported="true"> | ||
23 | + <intent-filter android:priority="10000"> | ||
24 | + <action android:name="android.provider.Telephony.SMS_RECEIVED"/> | ||
25 | + <action android:name="android.bluetooth.device.action.ACL_CONNECTED"/> | ||
26 | + <action android:name="android.bluetooth.device.action.ACL_DISCONNECTED"/> | ||
27 | + </intent-filter> | ||
28 | + </receiver> | ||
29 | + | ||
30 | + <service android:name="com.example.talktalkspeak.NotificationService" android:permission="android.permission.BIND_NOTIFICATION_LISTENER_SERVICE"> | ||
31 | + <intent-filter> | ||
32 | + <action android:name="android.service.notification.NotificationListenerService"/> | ||
33 | + <category android:name="android.intent.category.LAUNCHER"/> | ||
34 | + </intent-filter> | ||
35 | + </service> | ||
36 | + | ||
20 | </application> | 37 | </application> |
21 | 38 | ||
22 | </manifest> | 39 | </manifest> | ... | ... |
... | @@ -66,18 +66,26 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn | ... | @@ -66,18 +66,26 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn |
66 | private int isTTSReady = -2; | 66 | private int isTTSReady = -2; |
67 | private BroadcastReceiver kakaoReceiver; | 67 | private BroadcastReceiver kakaoReceiver; |
68 | long now = System.currentTimeMillis(); | 68 | long now = System.currentTimeMillis(); |
69 | - | ||
70 | - | ||
71 | - /* access modifiers changed from: private */ | ||
72 | public double speed = 1.0d; | 69 | public double speed = 1.0d; |
73 | private Spinner spinner; | 70 | private Spinner spinner; |
74 | private Spinner spinner2; | 71 | private Spinner spinner2; |
75 | - /* access modifiers changed from: private */ | ||
76 | public TextToSpeech tts; | 72 | public TextToSpeech tts; |
77 | - /* access modifiers changed from: private */ | ||
78 | public String ttsengine; | 73 | public String ttsengine; |
79 | private SeekBar volumebar; | 74 | private SeekBar volumebar; |
80 | 75 | ||
76 | + public void onInit(int status) { | ||
77 | + if (status == 0) { | ||
78 | + int language = this.tts.setLanguage(Locale.KOREAN); | ||
79 | + if (language == -1 || language == -2) { | ||
80 | + this.editText.setText("지원하지 않는 언어입니다."); | ||
81 | + } else { | ||
82 | + this.isTTSReady = status; | ||
83 | + } | ||
84 | + } else { | ||
85 | + this.editText.setText("TTS 작업이 실패하였습니다."); | ||
86 | + } | ||
87 | + } | ||
88 | + | ||
81 | /* access modifiers changed from: protected */ | 89 | /* access modifiers changed from: protected */ |
82 | public void onCreate(Bundle savedInstanceState) { | 90 | public void onCreate(Bundle savedInstanceState) { |
83 | super.onCreate(savedInstanceState); | 91 | super.onCreate(savedInstanceState); |
... | @@ -100,6 +108,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn | ... | @@ -100,6 +108,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn |
100 | initializeKakaoReceiver(); | 108 | initializeKakaoReceiver(); |
101 | Regex(this.tts.getEngines().toString()); | 109 | Regex(this.tts.getEngines().toString()); |
102 | 110 | ||
111 | + | ||
103 | int permission = ContextCompat.checkSelfPermission(this, "android.permission.RECEIVE_SMS"); | 112 | int permission = ContextCompat.checkSelfPermission(this, "android.permission.RECEIVE_SMS"); |
104 | 113 | ||
105 | if (permission == 0) { | 114 | if (permission == 0) { |
... | @@ -107,7 +116,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn | ... | @@ -107,7 +116,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn |
107 | this.button3.setBackgroundResource(R.drawable.on); | 116 | this.button3.setBackgroundResource(R.drawable.on); |
108 | } else { | 117 | } else { |
109 | Toast.makeText(this, "메시지 수신 권한 없음.", 1).show(); | 118 | Toast.makeText(this, "메시지 수신 권한 없음.", 1).show(); |
110 | - ActivityCompat.requestPermissions(this, new String[]{"android.permission.RECEIVE_SMS"}, 1); | 119 | + // ActivityCompat.requestPermissions(this, new String[]{"android.permission.RECEIVE_SMS"}, 1); |
111 | if (ActivityCompat.shouldShowRequestPermissionRationale(this, "android.permission.RECEIVE_SMS")) { | 120 | if (ActivityCompat.shouldShowRequestPermissionRationale(this, "android.permission.RECEIVE_SMS")) { |
112 | Toast.makeText(this, "메시지 권한 설명 필요함.", 1).show(); | 121 | Toast.makeText(this, "메시지 권한 설명 필요함.", 1).show(); |
113 | } else { | 122 | } else { |
... | @@ -115,6 +124,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn | ... | @@ -115,6 +124,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn |
115 | } | 124 | } |
116 | } | 125 | } |
117 | 126 | ||
127 | + | ||
118 | this.button1.setTag(Integer.valueOf(permission)); | 128 | this.button1.setTag(Integer.valueOf(permission)); |
119 | this.button1.setOnClickListener(new View.OnClickListener() { | 129 | this.button1.setOnClickListener(new View.OnClickListener() { |
120 | public void onClick(View view) { | 130 | public void onClick(View view) { |
... | @@ -193,7 +203,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn | ... | @@ -193,7 +203,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn |
193 | registerReceiver(this.kakaoReceiver, new IntentFilter("android.service.notification.NotificationListenerService")); | 203 | registerReceiver(this.kakaoReceiver, new IntentFilter("android.service.notification.NotificationListenerService")); |
194 | setSeekBar(); | 204 | setSeekBar(); |
195 | if (!permissionGrantred()) { | 205 | if (!permissionGrantred()) { |
196 | - startActivity(new Intent(ACTION_NOTIFICATION_LISTENER_SETTINGS)); | 206 | + startActivity(new Intent("android.setting.ACTION_NOTIFICATION_LISTENER_SETTINGS")); |
197 | } | 207 | } |
198 | } | 208 | } |
199 | 209 | ||
... | @@ -202,10 +212,10 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn | ... | @@ -202,10 +212,10 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn |
202 | if (intent != null) { | 212 | if (intent != null) { |
203 | String sender = intent.getStringExtra("sender"); | 213 | String sender = intent.getStringExtra("sender"); |
204 | String contents = intent.getStringExtra("contents"); | 214 | String contents = intent.getStringExtra("contents"); |
205 | - String date2 = intent.getStringExtra("receivedDate"); | ||
206 | 215 | ||
216 | +/* | ||
207 | if (sender == null || contents == null) { | 217 | if (sender == null || contents == null) { |
208 | - this.editText.setText((CharSequence) null); | 218 | + this.editText.setText((CharSequence) " "); |
209 | } else { | 219 | } else { |
210 | TextView textView = this.editText; | 220 | TextView textView = this.editText; |
211 | textView.setText(sender + 10 + contents + 10); | 221 | textView.setText(sender + 10 + contents + 10); |
... | @@ -214,22 +224,11 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn | ... | @@ -214,22 +224,11 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn |
214 | if (!this.button1.getBackground().getConstantState().equals(getResources().getDrawable(R.drawable.stop).getConstantState())) { | 224 | if (!this.button1.getBackground().getConstantState().equals(getResources().getDrawable(R.drawable.stop).getConstantState())) { |
215 | return; | 225 | return; |
216 | } | 226 | } |
217 | - | 227 | +*/ |
218 | } | 228 | } |
219 | } | 229 | } |
220 | 230 | ||
221 | - public void onInit(int status) { | 231 | + |
222 | - if (status == 0) { | ||
223 | - int language = this.tts.setLanguage(Locale.KOREAN); | ||
224 | - if (language == -1 || language == -2) { | ||
225 | - this.editText.setText("지원하지 않는 언어입니다."); | ||
226 | - } else { | ||
227 | - this.isTTSReady = status; | ||
228 | - } | ||
229 | - } else { | ||
230 | - this.editText.setText("TTS 작업이 실패하였습니다."); | ||
231 | - } | ||
232 | - } | ||
233 | 232 | ||
234 | private void initializeKakaoReceiver() { | 233 | private void initializeKakaoReceiver() { |
235 | this.kakaoReceiver = new BroadcastReceiver() { | 234 | this.kakaoReceiver = new BroadcastReceiver() { |
... | @@ -305,7 +304,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn | ... | @@ -305,7 +304,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn |
305 | public void onRestart() { | 304 | public void onRestart() { |
306 | super.onRestart(); | 305 | super.onRestart(); |
307 | if (!permissionGrantred()) { | 306 | if (!permissionGrantred()) { |
308 | - startActivity(new Intent(ACTION_NOTIFICATION_LISTENER_SETTINGS)); | 307 | + startActivity(new Intent("android.setting.ACTION_NOTIFICATION_LISTENER_SETTINGS")); |
309 | } | 308 | } |
310 | int permission = ContextCompat.checkSelfPermission(this, "android.permission.RECEIVE_SMS"); | 309 | int permission = ContextCompat.checkSelfPermission(this, "android.permission.RECEIVE_SMS"); |
311 | if (permission == 0) { | 310 | if (permission == 0) { |
... | @@ -321,6 +320,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn | ... | @@ -321,6 +320,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn |
321 | } | 320 | } |
322 | } | 321 | } |
323 | this.button1.setTag(Integer.valueOf(permission)); | 322 | this.button1.setTag(Integer.valueOf(permission)); |
323 | + | ||
324 | this.button1.setOnClickListener(new View.OnClickListener() { | 324 | this.button1.setOnClickListener(new View.OnClickListener() { |
325 | public void onClick(View view) { | 325 | public void onClick(View view) { |
326 | if (MainActivity.this.button1.getBackground().getConstantState().equals(MainActivity.this.getResources().getDrawable(R.drawable.stop).getConstantState())) { | 326 | if (MainActivity.this.button1.getBackground().getConstantState().equals(MainActivity.this.getResources().getDrawable(R.drawable.stop).getConstantState())) { |
... | @@ -330,6 +330,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn | ... | @@ -330,6 +330,7 @@ public class MainActivity extends AppCompatActivity implements TextToSpeech.OnIn |
330 | } | 330 | } |
331 | } | 331 | } |
332 | }); | 332 | }); |
333 | + | ||
333 | this.bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); | 334 | this.bluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); |
334 | BluetoothAdapter bluetoothAdapter2 = this.bluetoothAdapter; | 335 | BluetoothAdapter bluetoothAdapter2 = this.bluetoothAdapter; |
335 | if (bluetoothAdapter2 == null) { | 336 | if (bluetoothAdapter2 == null) { | ... | ... |
... | @@ -10,14 +10,13 @@ import android.os.Bundle; | ... | @@ -10,14 +10,13 @@ import android.os.Bundle; |
10 | import android.provider.ContactsContract; | 10 | import android.provider.ContactsContract; |
11 | import android.telephony.SmsMessage; | 11 | import android.telephony.SmsMessage; |
12 | import android.util.Log; | 12 | import android.util.Log; |
13 | -import java.text.SimpleDateFormat; | ||
14 | import java.util.Date; | 13 | import java.util.Date; |
15 | 14 | ||
16 | public class SmsReceiver extends BroadcastReceiver { | 15 | public class SmsReceiver extends BroadcastReceiver { |
17 | - private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); | ||
18 | 16 | ||
19 | public void onReceive(Context context, Intent intent) { | 17 | public void onReceive(Context context, Intent intent) { |
20 | if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) { | 18 | if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) { |
19 | + | ||
21 | SmsMessage[] messages = parseSmsMessage(intent.getExtras()); | 20 | SmsMessage[] messages = parseSmsMessage(intent.getExtras()); |
22 | if (messages.length > 0) { | 21 | if (messages.length > 0) { |
23 | sendToActivity(context, messages[0].getOriginatingAddress(), messages[0].getMessageBody().toString(), new Date(messages[0].getTimestampMillis())); | 22 | sendToActivity(context, messages[0].getOriginatingAddress(), messages[0].getMessageBody().toString(), new Date(messages[0].getTimestampMillis())); |
... | @@ -43,11 +42,9 @@ public class SmsReceiver extends BroadcastReceiver { | ... | @@ -43,11 +42,9 @@ public class SmsReceiver extends BroadcastReceiver { |
43 | intent.addFlags(872415232); | 42 | intent.addFlags(872415232); |
44 | intent.putExtra("sender", sender); | 43 | intent.putExtra("sender", sender); |
45 | intent.putExtra("contents", contents); | 44 | intent.putExtra("contents", contents); |
46 | - intent.putExtra("receivedDate", format.format(receivedDate)); | ||
47 | intent.putExtra("class", "SMS"); | 45 | intent.putExtra("class", "SMS"); |
48 | Log.d("SMSToSpeech", "Sender :" + sender); | 46 | Log.d("SMSToSpeech", "Sender :" + sender); |
49 | Log.d("SMSToSpeech", "contents : " + contents); | 47 | Log.d("SMSToSpeech", "contents : " + contents); |
50 | - Log.d("SMSToSpeech", "receivedDate : " + receivedDate); | ||
51 | context.startActivity(intent); | 48 | context.startActivity(intent); |
52 | } | 49 | } |
53 | 50 | ... | ... |
-
Please register or login to post a comment