1 page.title= 2 page.tags= 3 helpoutsWidget=true 4 5 trainingnavtop=true 6 7 @jd:body 8 9 10 <div id="tb-wrapper"> 11 <div id="tb"> 12 13 <h2></h2> 14 <ol> 15 <li><a href="#Build"></a></li> 16 <li><a href="#Verify"></a></li> 17 <li><a href="#StartActivity"></a></li> 18 <li><a href="#AppChooser"></a></li> 19 </ol> 20 21 <h2></h2> 22 <ul> 23 <li><a href="{@docRoot}training/sharing/index.html"></a></li> 24 </ul> 25 26 </div> 27 </div> 28 29 <p> 30 Android 31 32 {@link android.content.Intent} 33 Android 34 </p> 35 36 <p><a href="{@docRoot}training/basics/firstapp/index.html"></a><em></em> 37 38 39 <em></em> 40 </p> 41 42 <p> 43 </p> 44 45 46 47 <h2 id="Build"></h2> 48 49 <p> 50 <em></em><em></em><em></em><em></em> 51 {@link android.net.Uri} 52 53 54 </p> 55 56 <p> {@link android.net.Uri} {@link 57 android.content.Intent#Intent(String,Uri) Intent()} 58 </p> 59 60 <p> ( {@link 61 android.net.Uri} )</p> 62 63 <pre> 64 Uri number = Uri.parse("tel:5551234"); 65 Intent callIntent = new Intent(Intent.ACTION_DIAL, number); 66 </pre> 67 68 <p> {@link android.app.Activity#startActivity 69 startActivity()} </p> 70 71 <p> {@link android.net.Uri} 72 </p> 73 74 <ul> 75 <li> 76 <pre> 77 // Map point based on address 78 Uri location = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California"); 79 // Or map point based on latitude/longitude 80 // Uri location = Uri.parse("geo:37.422219,-122.08364?z=14"); // z param is zoom level 81 Intent mapIntent = new Intent(Intent.ACTION_VIEW, location); 82 </pre> 83 </li> 84 <li> 85 <pre> 86 Uri webpage = Uri.parse("http://www.android.com"); 87 Intent webIntent = new Intent(Intent.ACTION_VIEW, webpage); 88 </pre> 89 </li> 90 </ul> 91 92 <p> () 93 {@link 94 android.content.Intent#putExtra(String,String) putExtra()} </p> 95 96 <p> {@link android.net.Uri} MIME 97 {@link android.net.Uri} {@link android.content.Intent#setType setType()} 98 99 MIME 100 </p> 101 102 <p></p> 103 104 <ul> 105 <li> 106 <pre> 107 Intent emailIntent = new Intent(Intent.ACTION_SEND); 108 // The intent does not have a URI, so declare the "text/plain" MIME type 109 emailIntent.setType(HTTP.PLAIN_TEXT_TYPE); 110 emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {"jon (a] example.com"}); // recipients 111 emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Email subject"); 112 emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message text"); 113 emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("content://path/to/email/attachment")); 114 // You can also attach multiple items by passing an ArrayList of Uris 115 </pre> 116 </li> 117 <li> 118 <pre> 119 Intent calendarIntent = new Intent(Intent.ACTION_INSERT, Events.CONTENT_URI); 120 Calendar beginTime = Calendar.getInstance().set(2012, 0, 19, 7, 30); 121 Calendar endTime = Calendar.getInstance().set(2012, 0, 19, 10, 30); 122 calendarIntent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis()); 123 calendarIntent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis()); 124 calendarIntent.putExtra(Events.TITLE, "Ninja class"); 125 calendarIntent.putExtra(Events.EVENT_LOCATION, "Secret dojo"); 126 </pre> 127 <p class="note"><strong></strong> 14 API 128 </p> 129 </li> 130 </ul> 131 132 <p class="note"><strong></strong> {@link 133 android.content.Intent} {@link android.content.Intent#ACTION_VIEW} MIME {@code image/*} 134 135 () 136 </p> 137 138 139 140 <h2 id="Verify"></h2> 141 142 <p> Android () 143 144 </p> 145 146 <p class="caution"><strong></strong> 147 </p> 148 149 <p> {@link 150 android.content.pm.PackageManager#queryIntentActivities queryIntentActivities()} {@link android.content.Intent} 151 {@link 152 java.util.List} </p> 153 154 <pre> 155 PackageManager packageManager = {@link android.content.Context#getPackageManager()}; 156 List<ResolveInfo> activities = packageManager.queryIntentActivities(intent, 157 PackageManager.MATCH_DEFAULT_ONLY); 158 boolean isIntentSafe = activities.size() > 0; 159 </pre> 160 161 <p> <code>isIntentSafe</code> <code>true</code> 162 <code>false</code></p> 163 164 <p class="note"><strong></strong> 165 166 (<a href="{@docRoot}distribute/tools/promote/linking.html"> Google 167 Play </a>) 168 </p> 169 170 171 <h2 id="StartActivity"></h2> 172 173 <div class="figure" style="width:200px;margin-top:-10px"> 174 <img src="{@docRoot}images/training/basics/intents-choice.png" alt="" /> 175 <p class="img-caption"><strong> 1.</strong> () 176 </p> 177 </div> 178 179 <p> {@link android.content.Intent} {@link 180 android.app.Activity#startActivity startActivity()} 1 181 182 183 </p> 184 185 <pre> 186 startActivity(intent); 187 </pre> 188 189 <p> 190 </p> 191 192 <pre> 193 // Build the intent 194 Uri location = Uri.parse("geo:0,0?q=1600+Amphitheatre+Parkway,+Mountain+View,+California"); 195 Intent mapIntent = new Intent(Intent.ACTION_VIEW, location); 196 197 // Verify it resolves 198 PackageManager packageManager = {@link android.content.Context#getPackageManager()}; 199 List<ResolveInfo> activities = packageManager.queryIntentActivities(mapIntent, 0); 200 boolean isIntentSafe = activities.size() > 0; 201 202 // Start an activity if it's safe 203 if (isIntentSafe) { 204 startActivity(mapIntent); 205 } 206 </pre> 207 208 209 210 <h2 id="AppChooser"></h2> 211 212 <div class="figure" style="width:200px;margin-top:-10px"> 213 <img src="{@docRoot}images/training/basics/intent-chooser.png" alt="" /> 214 <p class="img-caption"><strong> 2.</strong></p> 215 </div> 216 217 <p> {@link android.content.Intent} {@link 218 android.app.Activity#startActivity startActivity()} ( 1) 219 220 () () 221 222 </p> 223 224 <p> () 2 225 226 227 () 228 229 </p> 230 231 <p> {@link 232 android.content.Intent#createChooser createChooser()} {@link android.content.Intent} {@link 233 android.app.Activity#startActivity startActivity()}</p> 234 235 <pre> 236 Intent intent = new Intent(Intent.ACTION_SEND); 237 ... 238 239 // Always use string resources for UI text. 240 // This says something like "Share this photo with" 241 String title = getResources().getString(R.string.chooser_title); 242 // Create intent to show chooser 243 Intent chooser = Intent.createChooser(intent, title); 244 245 // Verify the intent will resolve to at least one activity 246 if (intent.resolveActivity(getPackageManager()) != null) { 247 startActivity(chooser); 248 } 249 </pre> 250 251 <p> ( {@link 252 android.content.Intent#createChooser createChooser()} ) 253 </p> 254 255 256 257