Merge "WiFiDirectDemo: update permission requirement"
This commit is contained in:
@@ -11,7 +11,7 @@
|
|||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||||
|
|
||||||
<!-- Google Play filtering -->
|
<!-- Google Play filtering -->
|
||||||
<uses-feature android:name="android.hardware.wifi.direct" android:required="true"/>
|
<uses-feature android:name="android.hardware.wifi.direct" android:required="true"/>
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public class WiFiDirectActivity extends Activity implements ChannelListener, Dev
|
|||||||
|
|
||||||
public static final String TAG = "wifidirectdemo";
|
public static final String TAG = "wifidirectdemo";
|
||||||
|
|
||||||
private static final int PERMISSIONS_REQUEST_CODE_ACCESS_COARSE_LOCATION = 1001;
|
private static final int PERMISSIONS_REQUEST_CODE_ACCESS_FINE_LOCATION = 1001;
|
||||||
|
|
||||||
private WifiP2pManager manager;
|
private WifiP2pManager manager;
|
||||||
private boolean isWifiP2pEnabled = false;
|
private boolean isWifiP2pEnabled = false;
|
||||||
@@ -73,9 +73,9 @@ public class WiFiDirectActivity extends Activity implements ChannelListener, Dev
|
|||||||
public void onRequestPermissionsResult(int requestCode, String[] permissions,
|
public void onRequestPermissionsResult(int requestCode, String[] permissions,
|
||||||
int[] grantResults) {
|
int[] grantResults) {
|
||||||
switch (requestCode) {
|
switch (requestCode) {
|
||||||
case PERMISSIONS_REQUEST_CODE_ACCESS_COARSE_LOCATION:
|
case PERMISSIONS_REQUEST_CODE_ACCESS_FINE_LOCATION:
|
||||||
if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
|
if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
|
||||||
Log.e(TAG, "Coarse location permission is not granted!");
|
Log.e(TAG, "Fine location permission is not granted!");
|
||||||
finish();
|
finish();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -98,10 +98,10 @@ public class WiFiDirectActivity extends Activity implements ChannelListener, Dev
|
|||||||
channel = manager.initialize(this, getMainLooper(), null);
|
channel = manager.initialize(this, getMainLooper(), null);
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
||||||
&& checkSelfPermission(Manifest.permission.ACCESS_COARSE_LOCATION)
|
&& checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)
|
||||||
!= PackageManager.PERMISSION_GRANTED) {
|
!= PackageManager.PERMISSION_GRANTED) {
|
||||||
requestPermissions(new String[]{Manifest.permission.ACCESS_COARSE_LOCATION},
|
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
|
||||||
WiFiDirectActivity.PERMISSIONS_REQUEST_CODE_ACCESS_COARSE_LOCATION);
|
WiFiDirectActivity.PERMISSIONS_REQUEST_CODE_ACCESS_FINE_LOCATION);
|
||||||
// After this point you wait for callback in
|
// After this point you wait for callback in
|
||||||
// onRequestPermissionsResult(int, String[], int[]) overridden method
|
// onRequestPermissionsResult(int, String[], int[]) overridden method
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,8 @@
|
|||||||
android:versionCode="1"
|
android:versionCode="1"
|
||||||
android:versionName="1.0" >
|
android:versionName="1.0" >
|
||||||
|
|
||||||
<uses-sdk android:minSdkVersion="16" />
|
<!-- runtime permission check API is on Android 6.0 or higher -->
|
||||||
|
<uses-sdk android:minSdkVersion="23" />
|
||||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||||
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
|
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
|
||||||
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
|
||||||
@@ -12,10 +13,11 @@
|
|||||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||||
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
|
||||||
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||||
|
|
||||||
<!-- Google Play filtering -->
|
<!-- Google Play filtering -->
|
||||||
<uses-feature android:name="android.hardware.wifi.direct" android:required="true"/>
|
<uses-feature android:name="android.hardware.wifi.direct" android:required="true"/>
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:icon="@drawable/ic_launcher"
|
android:icon="@drawable/ic_launcher"
|
||||||
android:label="@string/app_name" >
|
android:label="@string/app_name" >
|
||||||
@@ -30,4 +32,4 @@
|
|||||||
</activity>
|
</activity>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
</manifest>
|
</manifest>
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
|
|
||||||
package com.example.android.wifidirect.discovery;
|
package com.example.android.wifidirect.discovery;
|
||||||
|
|
||||||
|
import android.Manifest;
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.app.Fragment;
|
import android.app.Fragment;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.IntentFilter;
|
import android.content.IntentFilter;
|
||||||
|
import android.content.pm.PackageManager;
|
||||||
import android.net.wifi.WpsInfo;
|
import android.net.wifi.WpsInfo;
|
||||||
import android.net.wifi.p2p.WifiP2pConfig;
|
import android.net.wifi.p2p.WifiP2pConfig;
|
||||||
import android.net.wifi.p2p.WifiP2pDevice;
|
import android.net.wifi.p2p.WifiP2pDevice;
|
||||||
@@ -18,6 +20,7 @@ import android.net.wifi.p2p.WifiP2pManager.DnsSdServiceResponseListener;
|
|||||||
import android.net.wifi.p2p.WifiP2pManager.DnsSdTxtRecordListener;
|
import android.net.wifi.p2p.WifiP2pManager.DnsSdTxtRecordListener;
|
||||||
import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceInfo;
|
import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceInfo;
|
||||||
import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceRequest;
|
import android.net.wifi.p2p.nsd.WifiP2pDnsSdServiceRequest;
|
||||||
|
import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
@@ -57,6 +60,9 @@ public class WiFiServiceDiscoveryActivity extends Activity implements
|
|||||||
|
|
||||||
public static final int MESSAGE_READ = 0x400 + 1;
|
public static final int MESSAGE_READ = 0x400 + 1;
|
||||||
public static final int MY_HANDLE = 0x400 + 2;
|
public static final int MY_HANDLE = 0x400 + 2;
|
||||||
|
|
||||||
|
private static final int PERMISSIONS_REQUEST_CODE = 1001;
|
||||||
|
|
||||||
private WifiP2pManager manager;
|
private WifiP2pManager manager;
|
||||||
|
|
||||||
static final int SERVER_PORT = 4545;
|
static final int SERVER_PORT = 4545;
|
||||||
@@ -80,6 +86,21 @@ public class WiFiServiceDiscoveryActivity extends Activity implements
|
|||||||
this.handler = handler;
|
this.handler = handler;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRequestPermissionsResult(int requestCode, String[] permissions,
|
||||||
|
int[] grantResults) {
|
||||||
|
switch (requestCode) {
|
||||||
|
case PERMISSIONS_REQUEST_CODE:
|
||||||
|
if (grantResults[0] != PackageManager.PERMISSION_GRANTED) {
|
||||||
|
Log.e(TAG, "Fine location permission is not granted!");
|
||||||
|
finish();
|
||||||
|
} else {
|
||||||
|
startRegistrationAndDiscovery();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Called when the activity is first created. */
|
/** Called when the activity is first created. */
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
@@ -96,12 +117,22 @@ public class WiFiServiceDiscoveryActivity extends Activity implements
|
|||||||
|
|
||||||
manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
|
manager = (WifiP2pManager) getSystemService(Context.WIFI_P2P_SERVICE);
|
||||||
channel = manager.initialize(this, getMainLooper(), null);
|
channel = manager.initialize(this, getMainLooper(), null);
|
||||||
startRegistrationAndDiscovery();
|
|
||||||
|
|
||||||
servicesList = new WiFiDirectServicesList();
|
servicesList = new WiFiDirectServicesList();
|
||||||
getFragmentManager().beginTransaction()
|
getFragmentManager().beginTransaction()
|
||||||
.add(R.id.container_root, servicesList, "services").commit();
|
.add(R.id.container_root, servicesList, "services").commit();
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M
|
||||||
|
&& checkSelfPermission(Manifest.permission.ACCESS_FINE_LOCATION)
|
||||||
|
!= PackageManager.PERMISSION_GRANTED) {
|
||||||
|
requestPermissions(new String[]{Manifest.permission.ACCESS_FINE_LOCATION},
|
||||||
|
PERMISSIONS_REQUEST_CODE);
|
||||||
|
// After this point you wait for callback in
|
||||||
|
// onRequestPermissionsResult(int, String[], int[]) overridden method
|
||||||
|
} else {
|
||||||
|
startRegistrationAndDiscovery();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user