android定位許可權申請
❶ android 定位需要什麼許可權
手機內置GPS功能不存在使用許可權問題。只要手機上有內置GPS,且處在工作狀態,任何有需求的軟體都可以自由調用它的信號。
❷ android獲取定位許可權有哪些
手機內置GPS功能不存在使用許可權問題。只要手機上有內置GPS,且處在工作狀態,任何有需求的軟體都可以自由調用它的信號。 樓主的手機以前能定位升級後不能定位了,可能的原因很多。建議安裝GPS TEST(網上搜索可得)測試一下,弄清楚現在的狀況,究竟是搜不到星,還是搜到星定不了位。把可能性的范圍縮小一下,就容易有針對性的對症下葯解決問題了 --三星的可定位到本人位置談不上是授權,實際上就是個類似於使用開關,如果說它是授權,那麼其他導航軟體也都有,不過幾乎都默認定位到自己位置,只是三星(好像搜狗也是)把它列出來讓使用者再設定一下,實際上是可有可無。也就是說,凡是沒有這個設置選項的,都是默認定位到自己位置的,而且,該選項只是指定打開地圖時的默認位置,對GPS功能無影響
❸ android如何獲取地理位置
三種方式進行定位,獲取用戶位置,分別是基於基站定位, 網路定位,GPS定位。
1.基站定位(passive):這是基於網路基站進行定位的,定位的精確度在幾十米到幾千米不等,在城市中基站覆蓋率比較高,推薦使用基站定位,如果是在郊區,基站相距較遠,基站的覆蓋沒有城裡好,定位的誤差比較大。如果在郊區不推薦使用基站定位。
2.網路定位:wifi定位,網路定位
3.GPS定位:與衛星進行通信。手機中嵌入了GPS模塊(精簡版的A-GPS),通過A-GPS搜索衛星, 獲取經緯度。使用GPS的弊端是:必須站在空曠的地方,頭頂對著天空,如果雲層厚了,也會受到一定的影響。精確度:10-50米
擴展知識:
使用Android是定位必備的許可權:
< uses-permission android:name= " android.permission.ACCESS_FINE_LOCATION " /> //精確定位
<uses-permission android:name= "android.permission.ACCESS_MOCK_LOCATION" /> //模擬器
<uses-permission android:name= "android.permission.ACCESS_COARSE_LOCATION" /> //粗糙定位
//獲取定位管理對象
LocationManager lm=(LocationManager)getSystemService(LOCATION_SERVICE);
String[] names=lm.getAllProviders();//獲取所有的位置提供者,一般三種
Criteria criteria=new Criteria();//查詢條件,如果設置了海拔,則定位方式只能是GPS;
criteria.setCostAllowed(true);//是否產生開銷,比如流量費
String provider=lm.getBaseProvider(criteria,true)//獲取最好的位置提供者,第二個參數為true,表示只獲取那些被打開的位置提供者
lm.requestLocationUpdates(provier,0,0,new LocationListener(){});//獲取位置。第二個參數表示每隔多少時間返回一次數據,第三個參數表示被定位的物體移動每次多少米返回一次數據。
private class MyLocationListener implements LocationListener {
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
}
@Override
public void onProviderEnabled(String provider) {
}
@Override
@Override
public void onLocationChanged(Location location) {
System. out.println( "服務中位置監聽發送了變化了" );
float accuracy = location.getAccuracy(); // 精確度
double altitude = location.getAltitude(); // 海拔
double latitude = location.getLatitude(); // 緯度
double longitude = location.getLongitude(); // 經度
String locationInfo = "jing:" + longitude + ",wei:" + latitude + ",haiba:" + altitude + ",jingque:" + accuracy;
Editor edit = sp.edit();
edit.putString( "location", locationInfo);
edit.commit();
}
} public void onProviderDisabled(String provider) {
}
❹ android百度lbs後台定位怎麼實現
1、到網路地圖申請新版本的key,老版本的也可以使用。
2、在manifes中添加許可權,具體參考
<!-- 使用定位所需許可權 -->
<permission android:name="android.permission.BAIDU_LOCATION_SERVICE" >
</permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
3、在Activity中代碼的實現
❺ 如何判斷android用戶拒絕了某項許可權
Android框架包含了對各種Camera以及其上可用的Camera功能的支持,它允許你在應用程序中抓拍照片和視頻。
注意事項
在開啟應用程序使用Android設備上的Camera功能之前,要考慮一些打算如何使用這些硬體功能的問題:
1. Camera需求:要考慮應用程序是否必須要運行在有Camera的設備上,如果必須,就要在應用程序的清單中聲明Camera需求;
2. 快照或定製Camera:應用程序准備如何使用Camera?是只對抓拍或視頻剪輯感興趣?還是要應用程序提供使用Camera的新方法?對於抓拍或剪輯,要考慮使用既存的Camera應用程序。對於開發定製化的Camera功能,請看下文的「構建Camera應用程序」
基礎
Android框架通過Camera API或Camera Intent來支持拍照和錄像,以下是相關的類:
Camera
這個類是控制設備Camera的主API。在構建一個Camera應用程序時,它被用於拍照或錄像。
SurfaceView
這個類用於向用戶實時的展現Camera的預覽。
MediaRecorder
這個類用於記錄來自Camera的視頻
Intent
MediaStore.ACTION_IMAGE_CAPTURE或MediaStore.ACTION_VIDEO_CAPTURE類型的Intent動作被用於不直接使用Camera對象來拍照或錄像。
清單聲明
在開始使用Camera API開發應用程序之前,要確保清單文件已經有了適當的聲明,以允許使用Camera硬體和其他相關的功能。
1. Camera許可權:應用程序必須申請使用設備Camera的許可權。
<uses-permissionandroid:name="android.permission.CAMERA"/>
注意:如果通過Intent來使用Camera,應用程序就不需要申請這個許可權。
2. Camera功能:應用程序還必須要聲明打算使用的Camera功能,例如:
<uses-featureandroid:name="android.hardware.camera"/>
把Camera功能添加到應用程序的清單中,會讓Google Play防止把程序安裝到不包含Camera或不支持你所需要的Camera功能的設備上。關於如何使用基於功能過濾的Google Play,請看Google Play和基於功能的過濾
如果應用程序能夠使用Camera或正確的操作Camera功能,但卻不需要它,那麼就應該在清單中指定android:required屬性,並把屬性值設置為false:
<uses-feature android:name="android.hardware.camera" android:required="false" />
3. 存儲許可權:如果應用程序要把圖片或視頻保存到設備的外部存儲器上(如SD卡),就必須在清單中指定這個許可權:
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
4. 音頻錄音許可權:對於視頻採集的音頻錄音,應用程序必須要申請音頻採集許可權:
<uses-permissionandroid:name="android.permission.RECORD_AUDIO"/>
5. 位置定位許可權:如果應用程序要給圖片標記GPS位置信息,就必須申請位置定位許可權:
<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>
關於獲得用戶位置的更多信息,請看「定位策略」
使用既存的Camera應用
在應用程序中不需要太多的額外代碼就可以快速的開啟拍照或錄像的方法是:使用Intent來調用一個既存的Android Camera應用程序。一個Camera Intent能夠通過既存的Camera應用程序和它返回給應用程序的播放控制來申請採集一張照片或一段視頻。本節會向你展示如何使用這項技術來採集一張圖片或一段視頻。
調用Camera Intent的過程會遵循以下這些大概的步驟:
1. 編寫一個Camera Intent:創建一個申請圖片或視頻的Intent對象,使用以下Intent類型之一:
MediaStore.ACTION_IMAGE_CAPTURE:從一個既存的Camera應用中申請圖片功能的Intent動作類型;
MediaStore.ACTION_VIDEO_CAPTURE:從一個既存的Camera應用中申請視頻功能的Intent動作類型。
2. 啟動Camera的Intent:使用startActivityForResult()方法來執行Camera的Intent。Intent啟動後,該Camera應用程序的用戶界面會顯示在屏幕上,並且用戶能夠拍照或錄像;
3. 接收Intent的結果:在你的應用程序中建立一個onActivityResult()方法來接收來自Camera Intent的回調和數據。當用戶完成成拍照或錄像(或者是取消操作),系統會調用這個方法。
圖像採集Intent
使用Camera Intent來採集圖像是你的應用程序用最少的代碼來拍照的快捷方式。一個圖片採集Intent能夠包含以下額外的信息:
MediaStore.EXTRA_OUTPUT:這個設置需要一個指定了保存圖片路徑和文件名的Uri對象。這個設置是可選,但強烈推薦使用。如果不指定這個值,Camera應用程序會用默認的名稱把採集到的圖片保存到默認的位置,這些默認值在Intent.getData()方法的返回欄位中指定。
以下示例演示了如何構建一個圖片採集Intent,並執行它。示例中GetOutputMediaFileUri()方法引用了下面「保存媒體文件」一節中的示例代碼:
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
private Uri fileUri;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// create Intent to take a picture and return control to the calling application
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
// start the image capture Intent
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
}
startActivityResult()方法執行完成後,用戶就會看到Camera應用程序的界面。用戶完成拍照(或取消操作)之後,用戶界面就會返回到你的應用程序中,並且你必須監聽onActivityResult()方法來接收Intent的結果,並繼續你的應用程序的執行。
視頻採集Intent
使用Camera Intent採集視頻是讓你的應用程序能夠用最少的代碼來錄像的一中快捷方式。視頻採集Intent能夠包含以下額外信息:
MediaStore.EXTRA_OUTPUT:這個設置要求用一個URI來指定保存視頻的路徑和文件名。雖然它是可選的,但強烈推薦使用這個設置。如果沒有指定這個設置,那麼Camera應用程序會把採集到的視頻用默認的名稱保存到默認的位置,默認的設置是在Intent的Intent.getData()方法域中返回的。
MediaStore.EXTRA_VIDEO_QUALITY:這個值的范圍是0~1,0的時候質量最差且文件最小,1的時候質量最高且文件最大。
MediaStore.EXTRA_DURATION_LIMIT:這個值以秒為單位,顯示視頻採集的時長。
MediaStore.EXTRA_SIZE_LIMIT:這個值以位元組為單位,限制視頻採集的文件大小。
下面的示例演示了如何構造一個視頻採集的Intent,並執行它。這個例子中的getOutputMediaFileUri()方法引用了下文的「保存媒體文件」中的示例代碼:
private static final int CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE = 200;
private Uri fileUri;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//create new Intent
Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_VIDEO); // create a file to save the video
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1); // set the video image quality to high
// start the Video Capture Intent
startActivityForResult(intent, CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE);
}
當startActivityForResult()方法被執行時,用戶就會看到一個可編輯的Camera應用程序界面。在用戶完成錄像(或取消操作)之後,該用戶界面就會返回到你的應用程序中,並且你必須監聽onActivityResult()方法來接收Intent的結果,並繼續執行你的應用程序。
接收Camera Intent結果
一旦你構建並執行了一個圖片或視頻的Camera Intent,那麼就必須要配置你應用程序來接收Intent的結果。本節向你展示了如何監聽來自Camera Intent的回調,以便應用程序能夠對採集到的圖片或視頻做進一步的處理。
為了接收Intent的結果,必須在啟動Intent的那個Activity中重寫onActivityResult()方法。下面的示例演示了如何重寫onActivityResult()方法來採集圖片Camera Intent或視頻Camera Intent的返回結果:
private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
private static final int CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE = 200;
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// Image captured and saved to fileUri specified in the Intent
Toast.makeText(this, "Image saved to:\n" +
data.getData(), Toast.LENGTH_LONG).show();
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the image capture
} else {
// Image capture failed, advise user
}
}
if (requestCode == CAPTURE_VIDEO_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// Video captured and saved to fileUri specified in the Intent
Toast.makeText(this, "Video saved to:\n" +
data.getData(), Toast.LENGTH_LONG).show();
} else if (resultCode == RESULT_CANCELED) {
// User cancelled the video capture
} else {
// Video capture failed, advise user
}
}
}
一旦Activity接收到一個成功的結果,那麼你的應用程序就可以訪問指定位置中的被採集的圖片或視頻。
❻ 安卓手機如何開始通訊錄和位置信息許可權
1.打開【安全中心】,進入【授權管理】;
❼ 安卓6.0動態定位許可權怎麼打開
Android6.0以後,許可權進行了改動。在Android6.0,原來的藍牙功能,發現掃描藍牙設備時,無法獲取到藍牙設備;因為在6.0後,藍牙這塊增加一個動態許可權;需要在程序中動態申請。6.0及後續版本,使用藍牙掃描,來需要添加如下的許可權,且該許可權還需要在使用時動態申請:3)動態申請許可權//判斷是否有許可權if(ContextCompat.checkSelfPermission(this,Manifest.permission.ACCESS_COARSE_LOCATION)!=PackageManager.PERMISSION_GRANTED){//請求許可權ActivityCompat.requestPermissions(this,newString[]{Manifest.permission.ACCESS_COARSE_LOCATION},MY_PERMISSIONS_REQUEST_ACCESS_COARSE_LOCATION);//判斷是否需要向用戶解釋,為什麼要申請該許可權if(ActivityCompat.(this,Manifest.permission.READ_CONTACTS)){Toast.makeText(this,"",Toast.LENGTH_SHORT).show();}}//許可權申請結果@(intrequestCode,@NonNullString[]permissions,@NonNullint[]grantResults){super.onRequestPermissionsResult(requestCode,permissions,grantResults);}